(*(p+1))[2]才是a【1】【2】
同样 *(*(p+1)+2)
p[1][2]
*(p[1]+2) 都一样,但和??*(p+1)[2]不同
c语言中 int a【3】【3】,(*p)【3】;p=a【0】; ??*(p+1)[2]指的是什...
p=a[0]:p指向二维数组a的第0行的行首元素的地址,也就是a[0][0]所对应的地址 (p+1)[2],也就是第一行的第2个元素的值,也就是a[1][2]
int**p=new int*; int a[3][3]; *p=a[0];\/\/正确 p=&(a[0]);\/\/不正确...
int a[3][3];\/\/a的元素是int[3] ,这里int[3]是一种数据类型(有3个int元素的数组),也就是说a[0]的类型就是int[3],那么a[0]的地址&a[0]的类型自然就是int(*)[3]了 p的类型是int**,&a[0]的类型是int(*)[3]; 而不是int**;所以p=&a[0];自然就是不合法的了 p=a[1]...
C语言的指针问题。*(p+i)是代表取值呢还是取地址?
*(p+0)就是a[0][0]的地址,*(p+1)就是a[1][0]的地址,*(p+2)就是a[2][0]的地址;而定义int (*p)[4];代表p是一个数组指针,指向一个4个 int大小的数组,此时p=a之后,p就是一个指向sizeof(int)*4这么大小的空间了,
若int*p[3],a[2][3];则p[0]=&a[1][2]这个赋值语句为何不对呢?谢谢
int *p[3];int a[2][3];则p是一个数组,数组元素是指针,该指针指向int类型的变量 所以p[0]即 *(p + 0)是数组p的第0个元素,p[0]的类型为指向int类型的变量.a是一个数组,数组的元素是含3个int类型元素的数组.所以a[1]是数组的第一个元素,a[1]的类型为含3个int类型元素的数组,a[1...
c语言中*(*(p+1)+2) 什么意思?具体怎么表示的?
以这种写法来看 p至少是**型 即指向指针的指针 比如int 这句话代表的含义是 对p右移一个单位 取值 对该值所代表的地址右移2个单位 对该地址取值 指针移动若干个单位,所增加的地址值取决于指针的类型 通用公式为 T *p; p+n = p的值+ n*(sizeof(T))...
c语言中,关于指针int(*p)[4]和int*p指向二维数组a[3][4]初始化的问题...
int (*p)[4];int a[3][4],i,j;\/*常规的初始化与输出*\/ printf("input:\\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("二维数组\\n:");for(i=0;i<3;i++){ for(j=0;j<4;j++)printf("%d\\t",a[i][j]);printf("\\n");} \/*用行...
C语言中,指针(*p)[]这是什么?怎么用?
(*p)[];这是定义了一个数组指针 p[] 是指针数组,(*p)[]是数组指针 例如:char *p[5] 是指针数组,数组有5个元素,每个元素都是指针 char (*p)[5]是数组指针,p指向含有5个元素的数组
C语言这里的(*p)[3]是什么意思?
p是指针,*(p+i)+j是指向二维数组第i行第j个元素的指针,(*p)[3]表示把p声明为指向含有三个元素的数组的指针,指针以内存地址作为其值,2293216,2293296应该都是内存地址。
C语言有段代码不太懂其中两段p=a; 是什么意思???求大神帮助
在C语言中,数组的名字可以代表指向这个数组第一个元素的指针,也就是说,这里的a代表了指向a[0]的指针,p是一个整形指针,p=a就是将指向a[0]的指针赋给p 后面的p++,因为p是整形指针,这里自增运算可以自动将其赋值为数组中下一个元素的指针,例如a[1]的指针。第二处是将p重新定位到a数组...
c语言中a[3][3]是什么意思?
(*p)[3] = a; 表示p是一个指向一维数组的指针。 这时p指向第一个一维数组也就是 1,2,3这一行。 p+1表示指针指向了第二个一维数组也就是4,5,6;用法上指针p和数组名a基本一样;以后遇到a[m][n]不要再想象成二维数组,就想成m个1维数组编号从a[0]到a[m-1]每个数组里存了n个...