在C中,
...
int num = 'a';
...
我的问题很简单。如何在整数类型变量中分配诸如“0”,“a”,“b”之类的字符而不会在C语言中出现任何类型错误?
答案 0 :(得分:4)
由于历史原因(大多数情况下),字符常量在C中的类型为int
。
但即使它们不是,也需要像
这样的初始化int num = 'a';
或像
这样的作业num = 'a';
仍然是完全合法的。可以将任何数字类型的值分配给任何(其他)数字类型的变量,并且将隐式转换该值(这可能涉及表示的更改和/或溢出的风险)。
char
及其亲属unsigned char
和signed char
是数字类型,特别是整数类型。
答案 1 :(得分:2)
字符只是整数值的表示。例如,'0'
可以写为0x30
或48
,'a'
可以替代0x61
或97
等。
所以作业完全有效。
答案 2 :(得分:0)
你可以。在C字符中,常量的类型为int
。这使得它与C ++略有不同。
答案 3 :(得分:0)
看看here和here。每个字符都是一个数字,实际上计算中的所有内容都是数字,只是其中一些(取决于类型和值)呈现为字符。
对于存储字符,变量类型应为char
或wchar_t
,但它可以是任何其他类型,因为它们都只是内存中的数字。
答案 4 :(得分:0)
(对不起,我读错了这个问题并写了评论,我的不好)----->
int main()
{
int num = 'a';
printf("%c", num);
return 0;
}
输出
a