上海凉菜厨师招聘网:c语言的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 10:06:34
int a
a=1
printf("%d",(++a)+(++a)+(++a));

(为啥会显示为10,搞不懂)
用人工算因该是:4+3+2=9 咋也算不到10阿,这10是怎么得来的?

不同的编译器所得出的结果是不一样的……如果想深究这个问题,推荐你c吧里的一个不错的帖子:
◆++i和i++的问题:
http://post.baidu.com/f?kz=6712609
不过个人感觉没必要弄明白3目以上的运算,纯属应试嘛!没什么用。
————————————————————————
如果真想学编程序,就不要"钻研"这类垃圾题.
如果只想过C二级,就必须"钻研"这类垃圾题.

当连续使用自增自减操作符三次以上的时候,运算结果由编译器决定呀(也就是未定义),所以不用管为什么,在不同的机器上会有不同的结果。你可以在TC和VC上分别试试,结果是不一样的。

标准C++编译器结果为12
请把堆,栈,全局,局部搞懂在作着题吧.
现在你想破脑子也想不出来.内存搞懂在玩C吧.

不是,这样的题在不同的编译器里可能会得到不同的结果,楼主不要太在意思这样的题,平常编程谁会这样写呢,也就是考二级三级笔试时会出这么无聊的题目.

这个有两个答案:9,12前面的是在wintc里面编译的,后着是在vc里面,这个例子可以看出c和c++的区别,c语言中有许都东西在c++里并不好用~~~但是c++确实比c好,vc更好~~~~~~```