c++ int (*a)[20]与int *a[20]有什么区别吗求详解
展开全部
int (*a)[20]是数组指针,int *a[20]是指针数组,区别详解
顾名思义就是存放指针的数组。整个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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询