作业帮 > 综合 > 作业

int d=1; fun(int p) {int d=5; d+=p++; printf("%d",d); } main

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/28 15:38:33
int d=1; fun(int p) {int d=5; d+=p++; printf("%d",d); } main( ) {int a=3; fun(a); d+=a++;printf("
最后一句是 printf("%d\n",d);}
int d=1; fun(int p) {int d=5; d+=p++; printf(
d+=p++ 在这里跟d+=p 一样 ++在后面是先使用再自加.
同理,d+=a++; 也一样.
而fun里面的d跟main里面的d是两个完全不一样的东西.fun那个在函数里面定义,使用的范围只在函数里面,是local variable.
main里面那个是全局的d.
另外fun(int p)只传值,就是说,调用fun(a)之后,a的值不会改变.
BTW,为什么你不把程序编译一次然后得出结论呢?
从这个故事中得到的教训是:
1,多余的++不要用.
2,变量不要用这样的a,b,c,d,等简单又容易混淆的.要给个具体的名字.例如student,更好的话加上前序.如指针pStudent,全局变量gStudent等.
其实答案就是5+3 和1+3等于多少.