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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dream静 中级黑马   /  2014-11-6 20:02  /  1102 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

视频里面提及到
加入定义一个  字符串数组
比如 char *name = "lily";里面的字符是不能够修改的;
因为后面是个常量字符串;

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

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

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

3 个回复

正序浏览
是name这个指针,改变了指向:原先它指向“lily”这个数组,后来指向了“jack”这个数组
回复 使用道具 举报
name只是做了一个字符的变量声明呀
回复 使用道具 举报
一句话 结构体是值类型;  下面是自己瞎掰的 不对请指正
你把它当成数组就可以了  结构体和数组其实一样的 区别只是 数组只能存单一类型, 结构体存的比较杂.
你别把name当做个单独的类型 你把它当做一个数组的一个元素地址,   只是给这个元素地址起个名字叫name 就和数组的坐标一样 用来存取的
给name赋值实际上是给数组里的一个元素更改值;  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马