有以下程序: main( ) { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2; printf("%dn",*p+*q); }

有以下程序: main( ) { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2; printf("%dn",*p+*q); },第1张

emmm,一楼的回答是对的。楼主看一下*q=p-2,你是不是把这个条件抄错了?习题上是不是*q=p+2

①*p=&a[3],所以*p=4(这个不解释了)

②A我们明确一个概念,就是a[10]这串位置是连续的。

B假设i=*p(i为p所指单元格的值)。*p=4,即i=&a[3]=4

Cp-2即p所在的地址往前推2单元格;即i所指的值往前推2单元格,即i=&a[3]往前推2单元格,即&a[1]=2

综上所述4+2=6

结果是0;

x=1,!x为false 所以再判断x==0也不成立故y=0

else if (x==0)

if (x) y+=2

else y+=3

else if (x==0)

{

if (x) y+=2

else y+=3

}

是一样的意思


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7752976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存