全心思齐网

为什么不能将字符串常量赋给一个字符变量?

一,字符串是一个串, 至少有一个字符, 且字符串是以'\0'结尾的, 所以在内存空间中至少需要2个字节的空间。

二,而字符是仅仅是单个的字符,在内存空间中占一个字节大小。

三,字符串常量也是字符串, 只不过是存在文字常量区,只读而已。 综上,可知不可以将字符常量赋给一个字符变量。 所以字符变量只能存单个字符,我们可以用字符数组来存放字符串,也可以把字符串的首地址赋给指向char型的指针变量。 比如: char str[]="hello world"; 或者 char *ptr = "hello world"; 都可以。 补充回答: char c; c='a'; 这样是可以的. 因为'a'表示一个字符. 而如果你这样: char c; c = "a"; 就不对了, 因为这时"a"表示的不是一个字符, 而是表示一个字符串, 字符串有一个字符a, 然后'\0'结束. 要注意字符和字符串的区别: 单引号括起来的是一个字符,如'a', 'b'等. 双引号括起来的就是一个字符串, 如 "hello", "abc", "a"等等.

匿名回答于2019-07-22 15:36:48


相关知识问答