
3个回答
展开全部
一,字符串是一个串, 至少有一个字符, 且字符串是以'\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"等等.
二,而字符是仅仅是单个的字符,在内存空间中占一个字节大小。
三,字符串常量也是字符串, 只不过是存在文字常量区,只读而已。
综上,可知不可以将字符常量赋给一个字符变量。
所以字符变量只能存单个字符,我们可以用字符数组来存放字符串,也可以把字符串的首地址赋给指向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"等等.
展开全部
字符串是由许多字符组成的,c语言中字符串是用字符数组保存的。将许多字符赋给一个字符可以吗?这很明显是行不通的。就像你不能将一个整型数组的值保存在一个整型变量中。
而且即使该字符串只有一个字符,C语言默认在字符串末尾加'\0'字符,不可能赋值成功。
在语法上这种行为也是非法的。
补充:LZ之后的做法是完全可以的。因为'a'是字符常量,而不是字符串常量。
而且即使该字符串只有一个字符,C语言默认在字符串末尾加'\0'字符,不可能赋值成功。
在语法上这种行为也是非法的。
补充:LZ之后的做法是完全可以的。因为'a'是字符常量,而不是字符串常量。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询