#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代替了星号 :)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!