C语言菜鸟级别问题

下面这个代码为什么后面要多一个sum,不能直接输出么#include<stdio.h>main(){inta,b,sum;a=123;b=456;sum=a+b;prin... 下面这个代码为什么后面要多一个sum,不能直接输出么
#include<stdio.h>
main()
{
int a,b,sum;
a=123;b=456;
sum=a+b;
printf("sum is %d\n",sum);<--------------就是这里,能不能不加sum
}
展开
 我来答
an0011121
2012-12-31 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3948
采纳率:55%
帮助的人:2495万
展开全部
前三行代码的sum明白吧,就是先申请一个变量int sum,然后它存放a+b的和,要不没地方存和,算了也白算。ok,现在和存在sum里面了。来看你的问题。
printf("sum is %d\n",sum);你的主要疑惑在这里,可不可以不加引号外面的sum呢?答案是不可以的。printf函数的格式是(“输出格式”,输出表列)。这个格式也就是%d、%f等格式控制字符。表列就是这个sum,第一段也说了,没有sum的话和就没地方存,sum这时候存放着a+b的值,你告诉了系统输出格式了,那么这个输出格式到底需要输出哪个变量呢,就是这个输出表列中你写的变量。可以这么认为“把变量sum以%d的格式通过printf函数从内存中放到显示器上”。

当然printf后面也有不加变量的时候,你可以对比一下。这个时候就是单独一句话,没有格式控制字符。比如printf("Hello!");这样是可以不用写sum等输出表列的,但是printf("Hello %d",sum);这时候就要写了。你需要给系统交代清楚你要输出的内容是啥格式的,是那个变量的。
布衣丿
2012-12-31 · TA获得超过406个赞
知道小有建树答主
回答量:108
采纳率:100%
帮助的人:114万
展开全部
这里的sum已经有定义了 在上面被定义为a+b 所以m的值就是a+b的值 printf的意思是输出对象中所存入的东西
后面那个sum 是你想要输出的对象 如果想不加sum 的话 可以直接打
printf(“sum is %d\n”,a+b);这样也可以 当然这么弄的话 会提示一个警告 说定义的sum没有用到 删除sum即可
以上 望采纳
追问
原来还可以这样啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
维多K
2012-12-31 · TA获得超过413个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:181万
展开全部
printf是一个函数,第一个参数是:“sum is %d\n”,这里面指定了一个%d,就表示要输出一个整数,那输出哪个整数呢?
所以你需要用第二个参数,即sum,来告诉printf要输出的整数是sum

如果,你指向输出一个字符串,比如:printf("Hello world!\n"),那么你就不用指定任何别的变量了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水的就是你X
2012-12-31 · TA获得超过863个赞
知道小有建树答主
回答量:901
采纳率:66%
帮助的人:516万
展开全部
不能,不然会报错,%d是一个占位符,sum就是用来填充这个占位符的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hhymyi
2012-12-31 · 超过16用户采纳过TA的回答
知道答主
回答量:204
采纳率:0%
帮助的人:81.2万
展开全部
前面的一个sum是输出sum这个字符,最后的sum是为了替代%所在的位置,d的作用是格式控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
18238836802yjr
2012-12-31
知道答主
回答量:25
采纳率:0%
帮助的人:6.4万
展开全部
不能的,因为printf (格式控制,输出表列);
这是一个格式。其中sum is是原样输出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式