鱼C论坛

 找回密码
 立即注册
查看: 1739|回复: 8

C语言的a++运行后a变量的值

[复制链接]
发表于 2014-10-19 13:32:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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才对啊,为什么结果不同
求局部变量与全局变量的区别,尽量详细。
若有所失礼,敬请原谅,谢谢合作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-19 16:26:38 | 显示全部楼层
1.这题只有局部变量,没有全局变量
2.不同的C语言编译器对这题的答案可能不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-19 17:08:47 | 显示全部楼层
我用VS2012 试了一下,结果是-3 4 4,跟你的那个还不一样.
至于你说的局部变量的话,这里的变量全是局部的,不是全局的,我理解的全局变量是程序中任何函数中,不用定义就可以直接调用的变量。在程序开头单独定义。
你可以看看这个
#include<stdio.h>

int b=3;
int main()
{
        int  a=3;
                printf("%d %d %d\n",a,-a++,a);
                printf("%d %d %d\n",b,-++b,b);
                return 0;
}
int a 就是局部变量
int b 就是全局变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 16:15:08 | 显示全部楼层
Mr.屎壳螂 发表于 2014-10-19 17:08
我用VS2012 试了一下,结果是-3 4 4,跟你的那个还不一样.
至于你说的局部变量的话,这里的变量全是局部的,不 ...

感谢你的解答:
      不过,鄙人是学C语言基础的,用VC++ 6.0 运行你提供的语句后,结果是:3 -3 3
                                                                                                           4 -4 3
       而运行鄙人本问题语句后,结果还是:-3 3 4。。。而且鄙人猜想是不是多了这“{  } ”影响了输出结果
      还请多多指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 16:19:23 | 显示全部楼层
仰望天上的光 发表于 2014-10-19 16:26
1.这题只有局部变量,没有全局变量
2.不同的C语言编译器对这题的答案可能不同

鄙人愚钝,再请教下,是因为局部变量让a变量变了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-20 18:27:24 | 显示全部楼层
C盲夫 发表于 2014-10-20 16:19
鄙人愚钝,再请教下,是因为局部变量让a变量变了吗?

不是,你去找本好点的C语言书,看“表达式的值”和“表达式的副作用”就明白了。其实一般的C语言编程(就是自己编者解决问题玩的)不需要研究这些,这些东西只有考试的时候有用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-20 20:31:11 | 显示全部楼层
多多指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-21 11:44:37 | 显示全部楼层
仰望天上的光 发表于 2014-10-20 18:27
不是,你去找本好点的C语言书,看“表达式的值”和“表达式的副作用”就明白了。其实一般的C语言编程(就 ...

哦,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-21 11:54:58 | 显示全部楼层
仰望天上的光 发表于 2014-10-20 18:27
不是,你去找本好点的C语言书,看“表达式的值”和“表达式的副作用”就明白了。其实一般的C语言编程(就 ...

还有怎么把本问题调到已解决状态,谢谢帮助...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 04:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表