解释将printf返回值赋值给变量的C语言代码及输出逻辑
C代码执行逻辑解释
int main() { int num=4; num=printf("2"); printf("%d",num); return 0; }
核心前提
首先明确C标准库中printf函数的返回值定义:调用成功时,返回本次函数调用实际向标准输出设备打印的字符总个数。
逐行执行逻辑
- 进入
main函数后,首先定义int型变量num并初始化为4,该初始值后续会被覆盖,不影响最终输出。 - 执行
num = printf("2");语句时,先触发printf调用:- 首先向控制台打印字符串内容
2 - 本次调用仅打印了1个字符,因此
printf返回值为1,赋值给变量num,此时num的值更新为1
- 首先向控制台打印字符串内容
- 执行
printf("%d",num);语句,将num的当前值1以十进制整数格式打印到控制台,本次输出内容为1 - 两次
printf输出的内容按顺序拼接,最终控制台显示的结果就是21
内容的提问来源于stack exchange,提问作者mn n
相关产品推荐
相关产品推荐

