#include<stdio.h>
int main()
{
char ch = '1' ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
#include<stdio.h>
int main()
{
char ch = 1 ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
这两个char声明的区别是什么?哪一个是正确的?这两个char声明有什么区别?哪一个是正确的?
#include<stdio.h>
int main()
{
char ch = '1' ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
#include<stdio.h>
int main()
{
char ch = 1 ;
printf ("\n%d %c\n", ch, ch) ;
return 0;
}
这两个char声明的区别是什么?哪一个是正确的?这两个char声明有什么区别?哪一个是正确的?
的第一段代码分配字符'1'
,其具有ASCII值为49.将其作为字符打印将产生1
,而作为数字打印将产生49
。
第二段代码分配值1.将它打印为字符会产生一个带有实现定义表示的不可打印字符,而将其打印为数字将产生1
。
至于哪个“正确”,取决于你想如何使用它。
第一个,
char c = '1';
是指派的1 (decimal 49)第二个中的ASCII值,
char c = 1;
被分配ASCII值1 (decimal 1, SOH "start of heading")。
因此,现在,不要问哪一个是正确的,你可以决定,因为两者都是有效的,所以哪个是正确的取决于你的意图。
当然,“1”的值是实现定义的,不一定是ASCII。 –
有一个ascii表,你应该注意char '1' != 1
。
在十进制值'1'
是49
正确的方法是使用单引号为所需的炭像这样
char c = 'a'
正确的是什么情况? –
如果您希望两者都得到相同的结果,请执行'char ch = 49'(因为49是'1'的ASCII码) – Dominique
更好的学习方法是运行代码。或者,更好的方法是获取一本'c'书并学习。 – KevinDTimm