
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,但是不知道为什么输出这个。
这是某公司的一道笔试题目,不会做……求解答…… 展开
char *s = "012345";
printf("%d", printf("%s", s));
用codeblocks会输出0123456,但是不知道为什么输出这个。
这是某公司的一道笔试题目,不会做……求解答…… 展开
1个回答
展开全部
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。
举个例子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认证项目的教育培训及考试管理,为企业和个人提供教育培训,专业认证考试和咨询指导服务。帮助企业实施和改进管理流程;提高管理...
点击进入详情页
本回答由上海联韬企业提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |