#define N 3+5*2
printf("%d",N+printf("%d",N*N));
printf("%d",N++);
这个怎么输出的呀
c语言的问题1111111111111111111111111111111
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
YuDale 2017-04-07 12:54关注首先是宏,宏是完全带入的,所以NxN实际上是: 3+5x2x3+5x2
其次是printf,这是一个函数,里面的数据结构是栈,也就是printf的计算方式是从右向左计算,所以printf("%d",N+printf("%d",NxN));是先输出printf("%d",NxN)这里的结果是43。
最后是printf的返回值,printf函数的返回值是printf实际控制输出的字符数,例如
int i=123;
printf("%d",i),这里返回值是3
printf("%d",N+printf("%d",NxN));这里打印的字符是43,也就是说字符数是2,所以输出的结果是4315。因为用星号会出现莫名其妙的东西,所以用x代替了星号 :)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报