黑马程序员技术交流社区

标题: 关于常量字符串问题 [打印本页]

作者: dream静    时间: 2014-11-6 20:02
标题: 关于常量字符串问题
视频里面提及到
加入定义一个  字符串数组
比如 char *name = "lily";里面的字符是不能够修改的;
因为后面是个常量字符串;

但是为什么在后面定义结构体的时候
比如struct Person {
     int age;
     char *name;
}

struct Person p2 = {22,"lily"};
p.name = "jack";
为什么又可以修改了呢。不是不能改得吗,char * 类型;

作者: doudou33420    时间: 2014-11-6 20:39
一句话 结构体是值类型;  下面是自己瞎掰的 不对请指正
你把它当成数组就可以了  结构体和数组其实一样的 区别只是 数组只能存单一类型, 结构体存的比较杂.
你别把name当做个单独的类型 你把它当做一个数组的一个元素地址,   只是给这个元素地址起个名字叫name 就和数组的坐标一样 用来存取的
给name赋值实际上是给数组里的一个元素更改值;  
作者: pingfan183    时间: 2014-11-6 22:28
name只是做了一个字符的变量声明呀
作者: 冰点    时间: 2014-11-7 12:13
是name这个指针,改变了指向:原先它指向“lily”这个数组,后来指向了“jack”这个数组




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