华清远见25072班C语言学习day7

重点内容:

二维整形数组:

定义:

数据类型 数组名[行数][列数];

数组中元素的访问:

通过行标和列标来访问、行标从0开始,列标从0开始

初始化和赋值:

int arr1[2][3]={1,2,3,4,5,6}; -->二维数组完全初始化

int arr2[2][3]={{2,9,4},{12,8,5}};-->二维数组以行为单位的完全初始化

int arr3[3][3]={1,2};-->二维数组的不完全初始化,未初始化的部分为0

int arr4[3][3]={{1},{3},{1,9}};-->以行为单位的不完全初始化,未初始化部分默认为0

int arr5[][4]={1,2,3,4,9}; -->二维数组省略行数的初始化//分配8个int的空间,因为一行最多有4个数据,初始化列表有5个,需要再分配一行

二维数组不能省略列数初始化!!!

二维字符数组(存储多个字符串,需要用二维字符数组):

定义:

char strs[行数][列数];

二维字符数组的列数,需要以最长的字符串来分配,会造成空间的浪费


指针:

其他类型不能存储内存地址,而指针可以存储内存地址

定义:

数据类型 *指针名;

指针的初始化和赋值:

int *p; -->定义了一个int*类型的指针p但是没有初始化是一个野指针

int *p1 = &a; //定义了一个int *类型的指针,用a的地址给指针初始化

int *p2 = NULL; //将指针初始化为空指针

p = &a; //p1和p都指向变量a(都保存变量a的地址)

指针和变量的关系:

指针保存变量的首地址,就称为指针指向该变量

变量有变量的地址,指针也有自己的地址

指针指向变量只能指向变量的首地址


作业:

1.一维数组中元素的去重

程序源码:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main(int argc, const char *argv[])

{

int arr[10];

printf("please enter arr:");

int len=sizeof(arr)/sizeof(arr[0]);

for(int i=0;i<len;i++)

{

scanf("%d",&arr[i]);

}

for(int i=0;i<len;i++)

{

for(int j=i+1;j<len;j++)

{

if(arr[i]==arr[j])

{

for(int k=j;k<len;k++)

{

arr[k]=arr[k+1];

}

len--;

j--;

}

}

}

for(int i=0;i<len;i++)

{

printf("%d\t",arr[i]);

}

putchar(10);

return 0;

}

2.整理思维导图

相关推荐
ambition2024214 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先
cmpxr_14 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
yashuk15 小时前
C语言实现PAT练习及算法学习笔记,还有SQLite介绍
c语言·sqlite·开源项目·算法学习·pat练习
ACP广源盛1392462567315 小时前
破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
爱编码的小八嘎16 小时前
C语言完美演绎7-10
c语言
hhh3u3u3u18 小时前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
泛凡(Linyongui)18 小时前
PY32F002B实践之二--宠物腹背理疗仪项目介绍及头文件解析
c语言·keil·py32·32位单片机·腹背理疗仪项目实践
网域小星球20 小时前
C 语言从 0 入门(十四)|文件操作:读写文本、保存数据持久化
c语言·开发语言·文件操作·fopen·fprintf
网域小星球20 小时前
C 语言从 0 入门(七)|字符数组与字符串完整精讲|VS2022 高质量实战
c语言·开发语言·字符串·vs2022·字符数组
Jia ming20 小时前
C语言实现日期天数计算
c语言·开发语言·算法