黑马程序员技术交流社区

标题: 字符串赋值 [打印本页]

作者: 15342193033    时间: 2014-12-25 19:21
标题: 字符串赋值
我看视频有一知识点:
char  name[] = "it";
name[0] = "T";
这是字符串变量,可以赋值;
char * name = "it";
*name = "T";
有错:这是字符串常量,放常量区,不能赋值;
有点模糊

作者: 宁静的夏天    时间: 2014-12-25 19:34
哪个视频呢
作者: swon13    时间: 2014-12-25 19:50
不懂帮顶~~~~~~~~~~~~~~~~~
作者: 从今以后    时间: 2014-12-25 19:51
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。
作者: Xwoder    时间: 2014-12-25 21:43
char * name = "it";

隐含的是

const char * name = "it";
作者: 15342193033    时间: 2014-12-26 15:18
从今以后 发表于 2014-12-25 19:51
char  name[] = "it";
name[0] = "T";
这是字符串变量,可以赋值;

o我好像明白点了,谢谢:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2