C语言的a++运行后a变量的值
#include<stdio.h>main()
{int a=3;
{printf("%d %d",-a++,a);
}
printf("%d\n",a);
}
结果:
-3 3 4
局部变量a=3,而为什么全局变量a=4??
个人理解,局部变量中a=4才对啊,为什么结果不同
求局部变量与全局变量的区别,尽量详细。
若有所失礼,敬请原谅,谢谢合作 1.这题只有局部变量,没有全局变量
2.不同的C语言编译器对这题的答案可能不同 我用VS2012 试了一下,结果是-3 4 4,跟你的那个还不一样.
至于你说的局部变量的话,这里的变量全是局部的,不是全局的,我理解的全局变量是程序中任何函数中,不用定义就可以直接调用的变量。在程序开头单独定义。
你可以看看这个
#include<stdio.h>
int b=3;
int main()
{
inta=3;
printf("%d %d %d\n",a,-a++,a);
printf("%d %d %d\n",b,-++b,b);
return 0;
}
int a 就是局部变量
int b 就是全局变量 Mr.屎壳螂 发表于 2014-10-19 17:08
我用VS2012 试了一下,结果是-3 4 4,跟你的那个还不一样.
至于你说的局部变量的话,这里的变量全是局部的,不 ...
感谢你的解答:
不过,鄙人是学C语言基础的,用VC++ 6.0 运行你提供的语句后,结果是:3 -3 3
4 -4 3
而运行鄙人本问题语句后,结果还是:-3 3 4。。。而且鄙人猜想是不是多了这“{} ”影响了输出结果
还请多多指教 仰望天上的光 发表于 2014-10-19 16:26
1.这题只有局部变量,没有全局变量
2.不同的C语言编译器对这题的答案可能不同
鄙人愚钝,再请教下,是因为局部变量让a变量变了吗? C盲夫 发表于 2014-10-20 16:19
鄙人愚钝,再请教下,是因为局部变量让a变量变了吗?
不是,你去找本好点的C语言书,看“表达式的值”和“表达式的副作用”就明白了。其实一般的C语言编程(就是自己编者解决问题玩的)不需要研究这些,这些东西只有考试的时候有用。 多多指教 仰望天上的光 发表于 2014-10-20 18:27
不是,你去找本好点的C语言书,看“表达式的值”和“表达式的副作用”就明白了。其实一般的C语言编程(就 ...
哦,谢谢 仰望天上的光 发表于 2014-10-20 18:27
不是,你去找本好点的C语言书,看“表达式的值”和“表达式的副作用”就明白了。其实一般的C语言编程(就 ...
还有怎么把本问题调到已解决状态,谢谢帮助...
页:
[1]