社区
C语言
帖子详情
输出问题
qi890402
2008-02-16 10:48:56
#include "stdio.h"
main()
{
int x=1;
printf("%d,%d,%d\n",++x,x,x++);
}
哪位高手可以解释一下为什么输出是3,2,1为什么不是2,1,1
...全文
55
6
打赏
收藏
输出问题
#include "stdio.h" main() { int x=1; printf("%d,%d,%d\n",++x,x,x++); } 哪位高手可以解释一下为什么输出是3,2,1为什么不是2,1,1
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
drizztguai
2008-02-17
打赏
举报
回复
大虾们都教育我们说 不要在这上面下工夫。 这都是玩具代码. 都是要避免使用的.
luckyTheOne
2008-02-17
打赏
举报
回复
1.命令提示符,当前目录下
cl /Fa file_name.c
看file_name.a就知道了
以下是引用NaiNaiGeXiong :
2、不能保证所有的C编译器都是先求完x++这个表达式后才求x这个表达式进而最后求++x这个表达式,编译器完全可能不按照从右到左的顺序求这三个表达式的值,但如果是C调用方式,编译器是从右到左把实参压入堆栈的,但入栈顺序不等于求参数的顺序。
3.vc默认情况下是__cdecl调用约定
4.如有错误,多谢指教
qi890402
2008-02-17
打赏
举报
回复
还是不太明白,能详细一点吗
hongwu147
2008-02-17
打赏
举报
回复
printf语句,从右向左执行,x初始化为一,x++后,返回1,x=2;++x后,返回3,x=4.
注意x++是先引用x,再对x加一,++x是先对x加一,再引用!
NaiNaiGeXiong
2008-02-17
打赏
举报
回复
1、楼主要再对表达式有所认识;
2、不能保证所有的C编译器都是先求完x++这个表达式后才求x这个表达式进而最后求++x这个表达式,编译器完全可能不按照从右到左的顺序求这三个表达式的值,但如果是C调用方式,编译器是从右到左把实参压入堆栈的,但入栈顺序不等于求参数的顺序。
3、这种是错误的写法。
coychou
2008-02-16
打赏
举报
回复
函数实参赋值给形参的右结合性。
com.google.gson.Gson(4个jar包)莫名被加了积分,回归0
如果你在代码中使用了Gson的`setLoggerLevel`方法来控制日志级别,那么可能会因为Log4j版本的
问题
导致日志
输出
异常。 `slf4j-api-1.6.0`和`slf4j-log4j12-1.6.1`是Simple Logging Facade for Java (SLF4J)的接口和...
C++ wchar_t 的中文
输出
问题
C++ wchar_t 的中文
输出
问题
1.char和wchar_t 众所周知,在C++中,包括char和wchar_t这两种内置类型,主要用来表示单一的字符。其中char类型一般占用一个字节,而wchar_t类型从字面上理解,可以看出它表示宽字符,...
谭浩强c语言五位数的输入
输出
问题
谭浩强c语言课本五位数输入
输出
问题
stm32 使用TIM1,8定时器PWM没
输出
问题
高级定时器TIM1,TIM8 PWM没
输出
问题
输入
输出
改错题
有关输入
输出
问题
。 输入为:12a↙ b↙ 运行结果为:1,2,a,b,123.300000,65535 请改正程序中的错误,使它能得出正确的结果。 #include <stdio.h> main() { int b; unsigned short a = 65535; short k = ...
C语言
70,035
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章