永发信息网

为什么*a才与a[0]的地址相同呢?*

答案:4  悬赏:70  手机版
解决时间 2021-03-19 03:59
  • 提问者网友:献世佛
  • 2021-03-18 05:57
#include

int main()
{
int *a[5]={0};
int b = 10;
a[0] = &b;
printf("%p\n",a[0]);
printf("%p\n",a);//为什么*a才与a[0]的地址相同呢?*a代表什么意思呢?
}
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-03-18 06:51
*a就是a[0], *a和a[0]无条件等价

a是个int* [], a是这个数组的首地址,那么*a自然就是首地址代表的空间里的值了,那就是a[0]了

a[0]的含义是:从地址a开始,偏移0个单位后的地址内的值,*a的意思是地址a内的值,所以说任何情况下*a和a[0]都是等价的
全部回答
  • 1楼网友:山河有幸埋战骨
  • 2021-03-18 09:13
*a[5]是指针数组,不能int *a[5]={0};这么赋值 *a才与a[0]的地址不相同 *a应该是代表a的首地址吧 a[0]指得是b的地址
  • 2楼网友:持酒劝斜阳
  • 2021-03-18 08:43
很简单啊,数组名代表数组的首地址啊。int *a[5]是指针数组,每个元素都是指向的一个地址,*a即是*(a+0)简写为*a。
  • 3楼网友:深街酒徒
  • 2021-03-18 07:19
我的理解是 if(a==0) 如果a等于0,这是比较关系,如果等于的话,执行下面的语句,不等于则为假,啥都不执行 if(a!=0) 如果a不等于0,才执行后面语句,两个句子是不一样的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯