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 展开
#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 展开
5个回答
展开全部
想实现purchar(‘+\n’)同时达到输出与换行的效果是不可行的,因为putchar语句是依次读取输出的数值直到遇到\0,比如putchar(123')就是3,putchar('1234')就是4,所以putchar('+\n')就是\n,即换行,既然你追求美观,那么就程序最后面(即return(0)前面。)增添一个printf("\n"),也不碍事!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先要理解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
明白了么?
比如:
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
明白了么?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
putchar()的入口参数只能是一个字符,
putchar(B+A); 不合法吧
putchar(B+A); 不合法吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实质就是ASC||码与字符的对应关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编译器默认进行强制转换了吧,应该能过,你可以去华夏联盟问问看,到底是为什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询