Z_belief 发表于 2013-10-31 21:49:12

why?????

#include<stdio.h>
main()
{
      char ch1,ch2;
      ch1= ‘A’+5-3;
      ch2= ‘A’+6-3;
      printf(“%d, %cn”, ch1,ch2);
}
本程序执行后的结果中,为什么打出的是67,而不是C??
希望大家能帮我解决这个问题!

青玄 发表于 2013-10-31 21:49:13

这和你输出的类型有关系,%c就是输出字符,%d就是输出数字,这与ASCII码有关系,再ASCII码里,每一个字符会对应一个数字。定义的字符,但输出类型如果是%d的话,那么它就会转化为与之相对应的ASCII码

czr27 发表于 2013-10-31 21:55:44

不管是char 还是 int本质都是一样的 就是数
看你怎么用他 如果是
%d打印出来的就是数 %c打印的就是字符

4521 发表于 2013-11-1 00:03:53

printf是格式函数%d是整数 %c是字符
至于char储存的是Ascll的数值 也是整数但是因为%c而显示字符 而%d显示整数

Z_belief 发表于 2013-11-1 12:55:10

青玄 发表于 2013-11-1 12:44 static/image/common/back.gif
这和你输出的类型有关系,%c就是输出字符,%d就是输出数字,这与ASCII码有关系,再ASCII码里,每一个字符会 ...

哦!谢啦!

Z_belief 发表于 2013-11-1 12:55:48

czr27 发表于 2013-10-31 21:55 static/image/common/back.gif
不管是char 还是 int本质都是一样的 就是数
看你怎么用他 如果是
%d打印出来的就是数 %c打印的就是字符

哦!谢啦!

Z_belief 发表于 2013-11-1 12:56:40

青玄 发表于 2013-11-1 12:44 static/image/common/back.gif
这和你输出的类型有关系,%c就是输出字符,%d就是输出数字,这与ASCII码有关系,再ASCII码里,每一个字符会 ...

哦!谢啦!

牡丹花下死做鬼 发表于 2013-11-1 19:42:26

printf(“%d, %cn”, ch1,ch2);
%d是以整数型的形式输出啊当然是67

乱闯 发表于 2013-11-2 09:03:00

本帖最后由 Root`s_Dream 于 2013-11-2 09:04 编辑

{:1_1:}printf(“%d, %c\n”, ch1,ch2);第一个是以整形打印,第二个以字符打印,所以结果为ch1=67,ch2='D',希望LZ理解 n前面还应加\ 表示换行
页: [1]
查看完整版本: why?????