为您找到"

若有定义语句:int a[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是

"相关结果约100,000,000个

c语言,假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。这...

如题所讲,a代表的是数组的首地址,它的值是不可以更改的,a只能表示数组首地址。所以a++本身就是不允许的。p是一个指针,可以把数组首地址赋值给指针,指针的值是可以改变的,所以p++是没问题的。

int[][4]={1,2,3,4,5,6,7,8};int(*p)[4]=a;则表达式**(p+1)-*(*p+...

记住一个万能公式就行了:(p + i) = p[i]所以:(p+1) = *(*(p+1)) = *(p[1]) = *(p[1] + 0) = p[1][0] = 5;(*p + 1) = *(*(p + 0) + 1) = *(p[0] + 1) = p[0][1] = 2;所以结果就是3了。

int a[]={1,2,3,4},y*p=&a[3];--p;y=*p;printf()"y=%d\n",y);怎么...

int a[]={1,2,3,4},y //定义数组a和变量y p=&a[3]; //*p指向a[3]的地址 --p; //*p指向a[2]的地址 y=*p; //将a[2]赋值给y printf()"y=%d\n",y);//这里应该是printf("y=%d\n",y)吧,输出y=3.希望可以帮到你 ...

...对象必须是整型的运算符是【 】 A. / B. % C. ++ D. !

 int x=3;do { printf("%d",x-=2);} while(!(--x));A. 1-2 B. 30 C. 1 D. 无输出 7、下列程序段执行之后,输出的结果是【A 】double x=4,y;if (x<0)y=0;elseif(x<10)y=1.0/x;else y=1;printf("%.2f\n",y);A. 0.25 ...

定义int a[ ]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是___.

是2 由于*p=a,p指向了a的第一个元素a[0](*++p)++ 这个先执行++p p指向a[1]p就是a[2]转化为a[2]++,由于++先算表达式值在自加1,所以这个表达式的值为2

若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是

错误的是A a[][]相当于 **a 很显然,p是指针;a是指向指针的指针。两个无法赋值。

若有定义 int a[3][4],b[4][3],(*p)[4]; 下列赋值等式正确的是 答案...

(*p)[4]的意思是:p是一个指向具有4个int类型元素数组的指针。a[3][4]有3行,每行的元素有4个 b[4][3]有4行,每行的元素有3个 所以 p=&a[1]是对的,让p指向a的第二行的四个元素,因为a的每行有四个元素,这与p的定义恰恰是匹配的。

若有定义语句int a[5], *p=a;,则对a数组元素的正确引用是什么 A *&...

正确答案是:D &a[5]就是a[5],下标越界了 a就是a[0],a[0]+2不是对数组元素的正确引用 同理,*(p+5)就是a[5],下标越界了 而* (a+2)就是a[2]

1.设变量定义为"int a[2]={1,3},*p=&a[0]+1;"则*p的值是___

4、首先*a[2]是一个指针数组就相当于一个二维数组(这个你可以看成是a[2][3]的二维数组),而**p=a就是把这个二维数组的首地址赋值给p 那么p现在指向了二维数组中第一个字符的地址(p现在指向了"one"首地址,现在指向了o)第一条输出语句:printf("%s",*(p++)+1);那么*(p++)就是先...

...4, 5, 6}; int x, y, *p; p = &a[0]; x = *(p+2);

p=1,x=3,y=5——这是无错的输出,代码有错会过不了编译。
1 2 3 4 5 6 7 8 9

相关搜索