nnpc.net
当前位置:首页 >> 已知:int A[]={1,2,3,4}, y, *p=A;则执行语句y =... >>

已知:int A[]={1,2,3,4}, y, *p=A;则执行语句y =...

B正确,选B。++p使p指向了2,*++p就是a[1],(*++p)--就是a[1]--。变量y的值是2,y=a[1]--;是把a[1]的值赋给y后才对a[1]作减一运算。

这个是一个算符先后顺序问题 先说题目:++p表示指针往后加1 , 这时y=2,而--是在赋值以后执行的,所以y=2,而a[]={1,1,3,4}; 再说x=i++,同样的道理,先赋值,再自增,因此x=1; i=2;

//看下这个程序你就知道是怎么回事了. #include #include void main() { int b[]={1,2,3,4},x,y,*p=b; y=*(p++);/*后缀自增的操作,赋的值是未自增的*/ x=*p;/*这里的P已经自增了.*/ printf("%x\t%x\t\n%x\t%x\t\n",b,y,p,x); getch(); return; }

&a[0]相当与a,即p指向数组的首地址,也就是a.*p=&a[0]p=a; *p++;++和*号都是右结合顺序的,因此相当与取出p所指向的数后p自增1;所以a[0]不变; *p+=1*p=*p+1;此时p指向的是a[1];所以相当于a[1]=a[1]+1;所以a[1]=12,a[13]没操作.所以还是12,素以因该...

int a=2,b=1,*p=&a; *p=3;//因为指针指向a,所以此时相当于a=3 a=a+b;//a=3+1 所以a=4

语句1 ?语句2:语句3 这是一个特殊语句:语句1成立就执行语句2,不成立就执行语句3。 题目中 a > y -> 2 > 3 不成立,所以执行 x++,而自增是在该语句之后执行的,所以在这个语句里x++还是原本的值 1,但之后x实际是+1了,所以x y a的值就是2 3 1

选B 解释: w>x不成立,所以a=0,那么&&运算符的左值(a=w>x)整体为False; 因为&&的短路效果,就是左值为False,则不计算右侧表达式; 所以b还是为最初赋值的6 综上:a=0,b=6

c的值没有变,还是3。 先判断a>b,结果是逻辑假,”逻辑假 && 其他表达式“的时候,因为前面已经是假,后面无论是什么结果,总的表达式也都是假,就不会再去执行”其他表达式“,所以++c没有执行,c还是3。

应该是看成 if (a>b) { c=a ; } a=b; b=c; if只管到c=a ; 因为a=1,b=2,不满足if,所以执行后面的,a=b=2,b=c=3,c还是3 选B

按照优先级顺序 1,先执行括号内的运算,且是从左到右进行计算,所以括号结束后有b=24, 2,将b的值赋给a 3,然后运行a+6,这里仅是进行一次加法运算,并没有对a再次赋值,所以a的值是没有改变的 故最后a=24

网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com