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

charc;c='a';这样行吗??... char c;
c='a';

这样行吗??
展开
 我来答
raef_beyond
2010-06-26 · TA获得超过1651个赞
知道小有建树答主
回答量:382
采纳率:50%
帮助的人:248万
展开全部
一,字符串是一个串, 至少有一个字符, 且字符串是以'\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"等等.
jackdavid144
推荐于2017-09-18 · TA获得超过350个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:229万
展开全部
字符串是由许多字符组成的,c语言中字符串是用字符数组保存的。将许多字符赋给一个字符可以吗?这很明显是行不通的。就像你不能将一个整型数组的值保存在一个整型变量中。
而且即使该字符串只有一个字符,C语言默认在字符串末尾加'\0'字符,不可能赋值成功。
在语法上这种行为也是非法的。

补充:LZ之后的做法是完全可以的。因为'a'是字符常量,而不是字符串常量。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知道624
2010-06-26
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
可以的 你没有教材吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式