指针
int * pa = &a; * :表示变量内部存的是地址
* + 地址 : 代表地址所在的空间
pa + 1 ====> (int)pa + sizeof(int)
指针长度永远为8个字节
pa = &a; 地址 *pa = a; 空间
数组
数组名是数组首个元素的地址
int a[10];
&a[o] 等价于 a
数组首个元素的地址:&a[0]
数组的地址: &a
&a[0] 与 &a 数值相等,但是意义不同
a + 1 ====> (int)a + sizeof(int)
&a[0] + 1 ====> (int)&a[0] + sizeof(int)
&a + 1 ====> (int)&a + sizeof(a)
数组指针:指针指向数组
eg: int a[10];
数组指针的两种表达方式
1、int * pa = a;
2、int (* pa)[10] = &a
指针数组:数组中存放指针
int * (pa[10]);
*数组指针可以当作数组名用(但不能测长度)(指针长度永远为8个字节)
*数组名可以当作数组指针用(但不能改变数值)(数组名是常量,不能改变)
*数组名作为函数参数传递时,实际上传递的是数组首个元素的地址
*我们不能数组指针来计算数组元素的个数,传参时要加上数组长度
*数组形参的写法 1、int *pa 2、int pa[ ](括号内数字无效,一般不写)