一:指针的&、*符号
一元运算符&可以取得变量的存储地址
int a = 24;
printf("%d %p \n", a, &a);
显示结果:24, 0b76. (%p是输出地址的说明符)
星号(*)表示该变量为一个指针。
声明 int *pi;的意思就是pi是一个指针,而且*pi是int类型
例子:令 a处的地址为0e12;b处的地址为0e52,且b处的值为 23.
(1)当 a= &b时,即a指向b时 a=*a=23;
(2)当 c= *a时,即把a指向的值赋给c, c = 23;
二:数组与&、*组合后的各项意义
int a [2][3]={1,2,3,4,5,6}; 我们都知道这是一个二维数组其中可以分为两部分,每部分都有三个数据。
从大到小来:首先 &a : 代表的是占据了整个a空间。
a=&a[0] : 指向的是 a空间的第一部分 a[0]空间。 数组名同时也是该数组首元素地址
a[0]=&a[0][0]=*a : 指向a[0]空间的第一个数据 1 。