考察printf函数返回值
2024-10-18 22:32:06
最近偶然间见了这样一道题:
#include<stdio.h>
int main()
{
int i=;
printf("%d\n",printf("%d",printf("%d",i)));
return ;
}
这个题感觉蛮怪的,不太常见!大家看看吧!
当然你在vc++6.0上一运行,你就能知道这个输出结果,但是你知道为什么吗?
请看:
以上程序输出结果为:
那么为什么是这个结果呢?大家请看下面解释:
*****************************************************************************************************
一、printf("%d\n",printf("%d",printf("%d",i) ) );
/*大家先看画线的这一部分,这一部分打印出来是:
这一步比较简单,没啥可说的,就是打印出来i的值43
**************************************************************************************************
二、printf("%d\n", printf("%d",printf("%d",i ) ) );
//这次画线部分打印出来是
这是因为
函数名 :printf函数原型:int printf (char * format,args,···);功能:按format指向的格式字符串所规定的格式,将输出表列args的值输出到标准输出设备。返回值:输出字符的个数,若出错,则返回负数。说明:format可以是一个字符串,或字符数组的起始地址。
理解:
其实主要printf返回值是字符串个数,就行了。
第一部分画线的是i=43,是两个字符,
所以第二个画线的输出就是2(代表43是两个字符)。
所以输出来就是432
**********************************************************************************************
三、printf("%d\n",printf("%d",printf("%d",i)));
这一部分打印出来是
分析:第三部分画线的1(代表第二部分中的2是一个字符。)
*************************************************************************************************
现在再举几个例子,加强理解:
例题1:
输入i=987;
输出最终结果是98731
分析:
因为987是三个字符,3又是1个字符;
-------------------------------------------------------------------
例题2:
输入i=56479854987;
输出最终结果就是56479854987112;
因为56479854987是11个字符,11是两个字符;
********************************************************************************************
好了,讲到这里相信大家都明白了吧!
这道题其实主要考察printf函数返回值,题目不难,但是我们很少注意。
欢迎各位交流分享,讲解有不对之处,还望各位前辈指出。先在此谢谢啦!
最新文章
- [ASE][Daily Scrum]12.05
- SQL Server 2005、2008 的 datetime 值范围(转)
- 【转载】Pyqt QSplitter分割窗口
- android selector详解
- JavaScript 札记(数据类型和变量、)
- this和$(this)
- 框架基础:ajax设计方案(二)---集成轮询技术
- Servlet--HttpServletResponse的2个操作流的方法
- git从远程分支clone项目到本地,切换分支命令,其他常用命令
- Linux限制普通用户只能使用某命令
- js全选 反选
- spring Boot 上传文件,10天后,不能上传的bug
- (纪录片)现代生活的秘密规则:算法 The Secret Rules of Modern Living: Algorithms
- codeforces 586B/C
- Buffer和cahce的区别
- ASCII码、ISO8859-1、Unicode、GBK和UTF-8 的区别
- 《Effective Java》读书笔记四(泛型)
- python2用pip进行安装时报错Fatal error in launcher: Unable to create process using &#39;";&#39;
- Spring学习(九)-----Spring bean配置继承
- Android成长之路-实现简单动画
热门文章
- 蜗牛爱课 - iOS7、8模态半透明弹出框
- windows下如何使用ssh远程登录Linux
- VC com 通信实例
- MFC对话框中解决回车键、ESC键退出的方法
- 【转】commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar实现文件上传
- 获取当前url并指定url中的字符 效果
- easyui的datagrid删除一条记录后更新出问题
- java改变图片文件尺寸
- jQuery学习-事件之绑定事件(七)
- HCE:Host-based Card Emulation基于Android设备的卡片模拟器