作业帮 > 综合 > 作业

C语言规定,数组名代表数组的首地址,也就是第0号元素的地址.因此,下面两个语句等价:

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 10:05:14
C语言规定,数组名代表数组的首地址,也就是第0号元素的地址.因此,下面两个语句等价:
p=&a[0];
p=a;
在定义指针变量时可以赋给初值:
int *p=&a[0];
它等效于:
int *p;
p=&a[0];
当然定义时也可以写成:
int *p=a;
一直没搞懂
int *p=&a[0];
它等效于:
int *p;
p=&a[0];
什么意思
p是整型指针,a[0]是数组的第一个元素,&是取址运算符
p=&a[0];表示p指向a[0],也就是p的值等于存放a[0]的地址空间的值.
再问: 那 int *p=&a[0];是指 p指向的值等于a的地址还是什么? 我的理解是 *p=&a[0] p=&a[0] 求教 纠结中
再答: int *p=&a[0]; 与下面两句等价 int *p;//声名一个指向整型数据的指针 p=&a[0];//为这个指针赋值 p 的值本身是一个地址,p的值等于a[0]的地址,这个地址中存放的内容为a[0]