C语言之数组基础知识

一、思维导图

在这里插入图片描述

二、数组基础知识

数组: 一组具体相同类型的元素的集合
数组名: 数组首元素的地址 &a[0]=a
数组地址: & 数组名 ===》&a
数组变量的定义: 通过[] 来表明申请元素的个数

在这里插入图片描述

数组的初始化:

1.全部初始化:
int a[4]={1,2,3,4};
全部初始化,数组的个数可以不用写,系统会自动推导
int a[]={1,2,3,4};
2.部分初始化0
初始化数组的前半部分,后面自动为 0
int a[4]={1,2,}; ===> int a[4]={1,2,0,0};
常用将数组全部初始化为0
int a[4]={0};

数组名与数组指针

数组名

1、 数组名是数组首个元素的地址
2、 数组首个元素的地址: &a[0] 与数组名等价 a
3、 数组首个元素的地址和数组的地址是两回事情 ===> &a[0] 和 &a 值是相同的,但是意义不同

数组名作为函数参数传递

1、 数组名作为函数参数传递,实际上传递的是数组首个元素的地址
2、 我们不能根据数组指针来计算数组元素个数,传参的时候要加上数组的长度
3、 数组形参的写法:1、int *pa 2、int pa[10] ===> 括号内的数字是无效的,一般情况下都是不写的,pa不是一个数组,还是指针
1、 void print(int *pa, int len)
2、 void print(int a[], int len)

数组指针:指向数组的指针

定义: 数组 *p2 = &a;
int (*p2)[10] = &a;

1、 数组指针可以当做数组名用,除了不能用来测长度
2、 数组名可以当做数组指针来用,除了不能改变数组名本身的值====> 数组名是个指针常量,是不能改变的

猜你喜欢

转载自blog.csdn.net/qq_40144572/article/details/84329280