关于C语言字符问题!
比如这段简单地代码:char ch=”a“;printf("%d“); 要求是题目的要求是在显示屏上面直接显示数字,但是有人写的代码是输入ASCII码对应的字母,然后显示数字,为什么不直接输入数字,显示数字呢?而是要绕一大圈输入ASCII码的字母,出来却是数字?还有上面那个简单地代码,如后面是%c是不是输出就是字母了,也就是字符?
追问:真的只是要求显示数字吗?那直接printf("12345");不就可以了?这就是显示数字12345,但你给的代码,貌似是要求显示变量ch的值。
嗯 我的代码是错的,不过有的真的是题目要求显示123456,是直接printf("12345");就可以啦,但是好多人要把12345的ASCII对应的字母找出来输入进去,然后出来时这个,这个有点不懂,其他的你回答的真的很专业,谢谢你指出错误啦!!!
答案:第一,请把双引号改成单引号,你声明的不是字符串,只是一个只能存放单个字符的变量,双引号用于括住字符串。
第二,你那个printf("%d“); 想表达什么?让printf函数显示谁的值? 要显示ch的值那就改成printf("%d", ch);
%d是将你传给printf函数的参数,以10进制数值形式显示,字符----》数值。
而%c是将参数以字符形式显示,数值----》字符。
反正对于计算机来说,这些都是用0和1表示的,只不过“理解”方式不同,你可以理解这个值是10进制,也可以理解成16进制,还可以理解成是个字符ASCII码,你可以用不同的控制符输出同一个变量试试,%d %c %f %u %x 就用这5个,看看同一个值能被printf函数表示成什么。
题目的要求是在显示屏上面直接显示数字
真的只是要求显示数字吗?那直接printf("12345");不就可以了?这就是显示数字12345,但你给的代码,貌似是要求显示变量ch的值。
为什么不直接输入数字,显示数字呢?而是要绕一大圈输入ASCII码的字母,出来却是数字?
还不如直接printf("%d\n", 'a'); 打印字符a的ASCII码(是97),也可以用printf("%c\n", 97);打印出字符 a。1.可以直接输入数字 但是如果定义的是char型变量去接收输入的数字的话 记住不能超char的范围就对了(好像是小于256)
2.如果是%c的话确实是输出字符 (不过你的printf后面没有参数 只有一个%d 这里没写对)
用c%输出的是字符。也可以输入数字然后输出字符的
上一个:C语言是什么啊?
下一个:一个C语言问题