why?????
#include<stdio.h>main()
{
char ch1,ch2;
ch1= ‘A’+5-3;
ch2= ‘A’+6-3;
printf(“%d, %cn”, ch1,ch2);
}
本程序执行后的结果中,为什么打出的是67,而不是C??
希望大家能帮我解决这个问题!
这和你输出的类型有关系,%c就是输出字符,%d就是输出数字,这与ASCII码有关系,再ASCII码里,每一个字符会对应一个数字。定义的字符,但输出类型如果是%d的话,那么它就会转化为与之相对应的ASCII码 不管是char 还是 int本质都是一样的 就是数
看你怎么用他 如果是
%d打印出来的就是数 %c打印的就是字符 printf是格式函数%d是整数 %c是字符
至于char储存的是Ascll的数值 也是整数但是因为%c而显示字符 而%d显示整数 青玄 发表于 2013-11-1 12:44 static/image/common/back.gif
这和你输出的类型有关系,%c就是输出字符,%d就是输出数字,这与ASCII码有关系,再ASCII码里,每一个字符会 ...
哦!谢啦! czr27 发表于 2013-10-31 21:55 static/image/common/back.gif
不管是char 还是 int本质都是一样的 就是数
看你怎么用他 如果是
%d打印出来的就是数 %c打印的就是字符
哦!谢啦! 青玄 发表于 2013-11-1 12:44 static/image/common/back.gif
这和你输出的类型有关系,%c就是输出字符,%d就是输出数字,这与ASCII码有关系,再ASCII码里,每一个字符会 ...
哦!谢啦! printf(“%d, %cn”, ch1,ch2);
%d是以整数型的形式输出啊当然是67 本帖最后由 Root`s_Dream 于 2013-11-2 09:04 编辑
{:1_1:}printf(“%d, %c\n”, ch1,ch2);第一个是以整形打印,第二个以字符打印,所以结果为ch1=67,ch2='D',希望LZ理解 n前面还应加\ 表示换行
页:
[1]