A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15342193033 中级黑马   /  2014-12-25 19:21  /  900 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我看视频有一知识点:
char  name[] = "it";
name[0] = "T";
这是字符串变量,可以赋值;
char * name = "it";
*name = "T";
有错:这是字符串常量,放常量区,不能赋值;
有点模糊

5 个回复

倒序浏览
哪个视频呢
回复 使用道具 举报
不懂帮顶~~~~~~~~~~~~~~~~~
回复 使用道具 举报
char  name[] = "it";
name[0] = "T";
这是字符串变量,可以赋值;
上面那个是字符数组,也就是char name[] = {'i', 't', '\0'};

char *name = "it"; 这个是把常量字符串"it"首地址赋给name。"it"在常量区。
*name = "T";
可以写成name = "T"; 让name重新指向另一个字符串常量。
*name = "T"等于说是试图修改常量字符串"it"首字符,所以不可以。
而且双引号"T"是字符串多个\0,有两个字符,也不可能存进只有一个字符的*name。
回复 使用道具 举报
char * name = "it";

隐含的是

const char * name = "it";
回复 使用道具 举报
从今以后 发表于 2014-12-25 19:51
char  name[] = "it";
name[0] = "T";
这是字符串变量,可以赋值;

o我好像明白点了,谢谢:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马