一、思维导图
二、数组基础知识
数组: 一组具体相同类型的元素的集合 数组名: 数组首元素的地址 &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、 数组名可以当做数组指针来用,除了不能改变数组名本身的值====> 数组名是个指针常量,是不能改变的