展开全部
int *a[5]是指针数组,int (*a)[5]才是数组指针,请区别。
那么什么是指针数组,顾名思义就是存放指针的数组。整个a是一个数组,里面的元素都是指针,如果想把某个指针存入这个数组可以使用这样的方法:a[i]=p,其中p是一个普通指针,i是偏移址。这个意思是把一个指针P存入第a数组中的第i+1个元素的位置。那么再看你的问题
1)a[0]是指针数组第一个元素,它是一个指针。
2)*a[0]是读取a[0]中的内容,前面说了a[0]是存在数组a的第一个元素,那么读取这个元素也就是读取存在a[0]的指针的内容,比如a[0]存放了指针p,而p=&x,而x=5;那么,读取指针P的时候会读出X的值就是5.
3)&a[0]意思是把a[0](一个指针)取地址,这个地址自然就是a。
那么什么是指针数组,顾名思义就是存放指针的数组。整个a是一个数组,里面的元素都是指针,如果想把某个指针存入这个数组可以使用这样的方法:a[i]=p,其中p是一个普通指针,i是偏移址。这个意思是把一个指针P存入第a数组中的第i+1个元素的位置。那么再看你的问题
1)a[0]是指针数组第一个元素,它是一个指针。
2)*a[0]是读取a[0]中的内容,前面说了a[0]是存在数组a的第一个元素,那么读取这个元素也就是读取存在a[0]的指针的内容,比如a[0]存放了指针p,而p=&x,而x=5;那么,读取指针P的时候会读出X的值就是5.
3)&a[0]意思是把a[0](一个指针)取地址,这个地址自然就是a。
更多追问追答
追问
假如:
int x=5;
int *a[5];
int *p=&x;
a[0]=p;
那么
a[0]就是&x;
*a[0]就是5;
&a[0]就是存放指针p的地址,也是指针数组的首地址吗?
追答
前面是对的,但是&a【0】存的不是p的地址,是x的地址。
展开全部
a[0]表示数组第零项,其地址就是数组首地址,即数组地址
*a【0】表示指向a【0】的指针
&a【0】表示对a【0】取地址
*a【0】表示指向a【0】的指针
&a【0】表示对a【0】取地址
追问
如果要用到第一个指针指向的int型数,应该用这三个中哪一个来取?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for example:
a[3]={1,2,3};
a[0]==1;
*a[0]==*(1) :地址为1的空间保存的数据,你知道是什么吗
&a[0]==a ; *(a)==*(&a[0])
&是取址运算, *是取值运算。互逆。
int *p = a[0]; p是指向a[0]的指针。
a[3]={1,2,3};
a[0]==1;
*a[0]==*(1) :地址为1的空间保存的数据,你知道是什么吗
&a[0]==a ; *(a)==*(&a[0])
&是取址运算, *是取值运算。互逆。
int *p = a[0]; p是指向a[0]的指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询