简单的C语言程序问题

[复制链接]
查看11 | 回复3 | 2012-12-17 23:14:06 | 显示全部楼层 |阅读模式
这个问题实际就是printf的运算顺序问题。其运算顺序是由这个函数参数的入栈顺序决定的。printf的入栈顺序是自右向左。c语言当中函数的声明时要给函数调用约定,即入栈的顺序,栈的管理等。如果我们不额外说明,就C编译器就默认为是_cdecl(其他几种你可以在网上搜一下),_cdecl就告诉了编译器这个函数是从右往左入栈。你可以打开看下在printf()函数的声明前有个_cdecl说明符。写法没有问题,先进行--a的运算,得出a=2,输出,再将a=2赋值给++a,运算后a=3,输出。结果显示为32...
回复

使用道具 举报

千问 | 2012-12-17 23:14:06 | 显示全部楼层
这种写法不是很规范!正确的写法:#includemain(){int a=3;
//少了一个int声明printf("%d",++a); //a=4printf("%d",--a); //a=3 }...
回复

使用道具 举报

千问 | 2012-12-17 23:14:06 | 显示全部楼层
看来楼上给的答案挺明白的了。受教了!goyn8037...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行