为您找到"

...a[2]={1,3}, *p=&a[0]+1;”,则*p的值是

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

int a[6]={1,2,3,4,5,6},*p=&a[2];则p[3]=

p取到的是a[2]的地址,a[2]走3个地址,所以是a[5]=6,既p[3]=6

C语言的选择题

p=&a[0][0];for(i=0;i<9;i++) p[i]=i+1;printf("%d \n",a[1][2]);} 程序运行后的输出结果是___B___ (2分)B. 6 7. 若有一些定义和语句 include <stdio.h> int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是__C__。

C语言求大神解答

13.设static int a[3]={1,2,3};int*p[ ]={&a[0],&a[1],&a[2]};则与数组元素a[1]等价的是( A)A.*p[1] B.p[1] C.*p+1 D.p+1 14.设 struct { char name[10];int age;}stu[2]={{ 〞Tom〞,25},{〞Mary〞,26}},*p=stu;则执行语句printf(〞%s...

...a[10]={1,2,3,4,5,6,7,8,9,10},*p=a+1; 则*(p+2)的值为( )。_百 ...

p是个指针变量 初始是指向a[1] 应为单个的a是只数组的第一个数a[0] 所以a+1就是指a[1] 又应为p再移动两个位置p+2 所以即指的是a[3]的值 所以最后的结果是4

我要过程:char*a[2]={"one,"two"},**p=a;printf("%s,",*(p++)+1...

开始定义的 *a[2]是一个指针数组 存放后面两个字符串的首地址 p是一个存放指针变量的指针 然后 赋值 (p++) 就是先指向a[0] 然后 p指向 a[1](p++)+1 就是指向a[0]+1个元素的地址 然后%s 就输出 第二个 之前 p已经指向a[1]的地址了 而**p就是指向这个地址所表示的内容。p-1 ...

int a[]={1,2,3,4,5}; int *p=a; printf("%d\n",*p); 为什么结果是1呢...

输出顺序按照从右往左运行,最后的是*P,因为*p=a,所以*P输出数组的第一个元素 最后的*p=1;--(*p)先自减=0,*p=0;p--先复制=0;p=0;(*P)++先复制=0;(++p)中++p自加1,变为坐标为1的元素,a[1]=*(++p)=2;p此时也指向a[1]的,*p=2;...

main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;pri...

int a[3][3],实际上相当于一维9个元素的数组,所以,a[1][2]就相当于p[5],p的第六个元素,值为6

...p=a+1; int a[3][4] 为什么p[0]或者*p代表&a[1][0]??以前不是直接...

因为刚开始的*p代表的是数组名的第一行地址,而执行p=a+1后,地址同样+1,则*p代表的事a[1][0]的地址

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

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

关于几道C语言的问题

p=a;*p=a[0],这是没有问题的,第二条,*(++p),先算前加加p指向a[1],在算*p,自然输出2,第三条一样,*取值和++的优先级是一样的但是它们的结合性事从右向左,所以还是先算前加加p=a[2],自然有输出了3,第四条,虽然,是先算p--,但是它是后减,即先取出p的值用,然后,在...
1 2 3 4 5 6 7 8 9

相关搜索