C语言中putchar打印的结果的和字符变量被赋值时的变量一样吗?

例如#include<stdio.h>main(){charA,B,C;B='1';C='A';for(A=0;A<6;A++){if(A%2)putchar(B+A);... 例如
#include<stdio.h>
main()
{char A,B,C; B='1';C='A';
for(A=0;A<6;A++)
{ if(A%2) putchar(B+A);
else putchar(C+A);
}
}编译后打印的结果是A2C4E6
展开
 我来答
丘寒蕾彭帆
游戏玩家

2019-03-13 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:814万
展开全部
想实现purchar(‘+\n’)同时达到输出与换行的效果是不可行的,因为putchar语句是依次读取输出的数值直到遇到\0,比如putchar(123')就是3,putchar('1234')就是4,所以putchar('+\n')就是\n,即换行,既然你追求美观,那么就程序最后面(即return(0)前面。)增添一个printf("\n"),也不碍事!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友021d8e3
2012-09-18 · 超过15用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:39万
展开全部
首先要理解C语言中 "字符即数字", 但是这并不是说'1' == 1, 字符是数字到符号的一种映射(即ASCII码表给出的映射关系. 当然还有其他很多映射表, 比如UTF-8, 这种映射就叫做字符编码),
比如:
64 <===> 'A', 96 <===>'a', '1'<===>49.

所以尽管我们给的参数是'1', 但实际上计算机中存储的值是49, '1'只是这个数字在屏幕上的样子.

实际上,你可以传给putchar()任意数字,只要在其参数类型(char, 8bit)所表示的范围内( -128~127, 或0~255), 只要可以找到相应的映射字符, 就可以打印出该字符.

所以传给putchar()的参数是49或'1'没有本子区别, '1'只是49的另外一种表示方法. 同理, 如果参数是'1'+1<===>49+1=50 <===> '2', 'A'+1<===>64+1=65<===>'B'

甚至'1'+'A' <===> 49+64= 123 <===>'一个一定义的字符,但是可能在屏幕上显示不了,具体参照ASCII表'.

你的例子中 A:0~5, 参数一次是'A'+0, '1'+1, 'A'+2, '1'+3, 'A'+4, '1'+5, 即字符A2C4E6

明白了么?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晕完了吗
2012-09-13
知道答主
回答量:8
采纳率:0%
帮助的人:1.3万
展开全部
putchar()的入口参数只能是一个字符,
putchar(B+A); 不合法吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangyuanhui688
2012-09-14 · TA获得超过209个赞
知道答主
回答量:293
采纳率:0%
帮助的人:147万
展开全部
实质就是ASC||码与字符的对应关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
returnDC
2012-09-13 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:126万
展开全部
编译器默认进行强制转换了吧,应该能过,你可以去华夏联盟问问看,到底是为什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式