关于c中的字符常量?

来源:百度知道 编辑:UC知道 时间:2024/05/29 14:10:26
C中的字符变量是不是只能存放一个字符?也就是说
main()
{char c;
c='a'
}是正确的 但是c="a" 和c="china"却都是错误的?? 能帮我具体分析一下 这两个错误的原因吗?

C中的char变量只能存放一个字符,他的大小是一个字节也就是8位。
c="a" 和c="china"都是往字符变量里面放字符串的语句,类型不符合。
虽然c="a"看上去好像是一个字符,但双引号表示里面是字符串,C语言默认在字符串最后自动加一个\0做为结束的,所以c="a"实际上是把a\0放如字符变量c中,所以只有一个字节容量的变量c是不够的。就这样

字符型自然是存放一个字符
"a" ,"china"都是字符串

char 是定义一个字符,在内存中只占一个内存单元 所以c='a'是对的

""是用在字符串的 所以c="a" 是错的 如果你定义的是char *C 就对了.

至于c="china",一个内存单元怎么放的下那么多字符呢?