
c语言大神进 int a[2][3],*p; 怎样理解"对于 p=a;来说可以认为 p是
c语言大神进inta[2][3],*p;怎样理解"对于p=a;来说可以认为p是(int*)类型的,而a是(int**)类型"这句话的...
c语言大神进
int a[2][3],*p;
怎样理解"对于 p=a;来说可以认为
p是(int*)类型的,而a是(int**)类型"这句话的 展开
int a[2][3],*p;
怎样理解"对于 p=a;来说可以认为
p是(int*)类型的,而a是(int**)类型"这句话的 展开
3个回答
展开全部
>>>首先,这相当于两个变量定义语句: int a[2][3]; int *p;所以第二个标识符p是int *类型没有疑问,这是教科书上讲的;此时p是一个指向int型数据的指针变量。
>>>对于int a[2][3]的理解,可以把 int [3]看作一个整体,意为由三个连续整型数据组成的单元;而a[2]是一个数组,由两个元素构成(每个元素是个int [3]即三个连续存放的整数)。a是数组名。数组名就是数组首地址。所以a是a[0]的起始地址,即a==&a[0];a+1是a[1]的起始地址,即a+1==&a[1]。而a[0]、a[1]是一个int [3]即有三个整型元素的数组,所以a[0]、a[1]也是地址,类型为int *型,是一级指针。而a==&a[0],又取一级地址,故a为二级指针,类型为int **。
>>>对于int a[2][3]的理解,可以把 int [3]看作一个整体,意为由三个连续整型数据组成的单元;而a[2]是一个数组,由两个元素构成(每个元素是个int [3]即三个连续存放的整数)。a是数组名。数组名就是数组首地址。所以a是a[0]的起始地址,即a==&a[0];a+1是a[1]的起始地址,即a+1==&a[1]。而a[0]、a[1]是一个int [3]即有三个整型元素的数组,所以a[0]、a[1]也是地址,类型为int *型,是一级指针。而a==&a[0],又取一级地址,故a为二级指针,类型为int **。
追问
谢谢啦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |