你是否了解C语言中printf函数的返回值?不知道的话下面这一篇小短文可以帮你解决printf的一些你不知道的点。
1.直接上代码
#include<stdio.h>
int main()
int i = 123;
printf("%d", printf("%d", printf("%d", i)));
return 0;
}
输出:
对于这个运行结果,你怎么看?
我们来一步步分解printf函数,看看为啥会输出这个结果。
程序中的print函数是这样写的:printf("%d\n",printf("%d",printf("%d",i)));
一共有三个printf函数,我们可以使用一些代号来简化这个printf函数,如下:
代号A: printf("%d",printf("%d",i));
代号B: printf("%d",i)
则程序代码可以简化为:printf("%d\n",A); 那么我们就先来求A。
而A,又可以简化为:printf("%d",B);那么我们就先来求B。
B是 printf("%d",i),打印出“123”,即在运行结果中,你最先看到的是123。printf函数的返回值是printf实际控制输出的字符数,那么打印的123 就是3个字符,因此printf("%d",i)返回的就是3,也就是B是3,那么,A就可以写为printf("%d",printf("%d",3));打印出3,即在运行结果中,你紧接着会看到3。而打印出的3是1个字符,因此A就是1,那么printf("%d\n",A); 实际上就是printf("%d\n",1); 打印出1,即在运行结果中,你最后看到的就是1.
很多人在运行程序时,看到提示“error: ld returned 1 exit status”不知所措,自己代码没有任何问题,就是运行不起来,这是因为,自己上一个程序仍在运行,还未关闭,只要将上一个程序关掉,一切就迎刃而解了。常见的,如很多人喜欢装的杀毒软件,360,安全管家什么的,当你运行时,程序可能会被检测为高危程序,惨被清除,导致程序什么也没显示。正常情况下,无需杀毒软件,只要正常使用互联网,保证自己纯净上网后,杀毒软件就像累赘,可有可无。解决方法:输入时的格式必须与scanf里的格式一模一样。..
(。・∀・)ノ゙嗨!大家好,我是呆博~很开心可以在这里给接着大家分享我的 C 语言学习笔记~因为微信对于代码块的支持并不是很好,所以代码部分以截图形式呈现,如果想获取原始代码可点击底部 阅读原文 获得。