printf("%d", printf("%s", s));输出什么

请问题目中的语句输出原理是什么?char*s="012345";printf("%d",printf("%s",s));用codeblocks会输出0123456,但是不... 请问题目中的语句输出原理是什么?
char *s = "012345";
printf("%d", printf("%s", s));
用codeblocks会输出0123456,但是不知道为什么输出这个。
这是某公司的一道笔试题目,不会做……求解答……
展开
 我来答
超可爱ING
2015-09-23 · TA获得超过1245个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:198万
展开全部
int fun(int x){return x;}
举个例子printf("%d", fun(x));

当运行到这句话时,先运行fun(x),然后通过printf();输出fun(x)的返回值,对吧。
所以以上这个输出,很明显输出的是x的值,也就是fun(x)的返回值。

同理printf("%d", printf("%s", s));
输出printf("%s", s)这个函数的返回值。
printf()函数的返回值为int,返回字符数。
所以,当运行这个语句时,先执行printf("%s", s),输出了012345,然后它返回了字符串长度6,执行printf("%d", 6),则输出6。所以最后结果为0123456。
上海联韬企业
2025-02-17 广告
联韬企业管理咨询有限公司是专注在供应链管理和运营管理领域的培训咨询机构,承办CPIM/CSCP/CLTD/SCOR DS认证项目的教育培训及考试管理,为企业和个人提供教育培训,专业认证考试和咨询指导服务。帮助企业实施和改进管理流程;提高管理... 点击进入详情页
本回答由上海联韬企业提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式