| 1分 | 
 
数组不能整体赋值,请使用strcpy或者memcpy 
 | 
| 
 
复习一下数组先。 
 | 
|
| 10分 | 
 
数组名被看成常量,不能直接赋值 
 | 
| 5分 | 
 
我记得某书是用盒子比喻指针,我也试试看。
 
1.有一个密封的盒子,叫Pepole.name,它恒定有20个格子,每个格子有一张纸条,这些纸条上写着一个位置,传说这些位置上也有盒子,并且这些盒子可以存放一个叫char的珠宝; 2.有一个不密封的盒子,叫name,他没有固定个数的格子,但里面也有很多纸条,同样这些纸条上写着位置,传说这些位置上也有盒子,这些盒子里放着许多有用的宝石(中世纪魔法宝石?); 3.魔法师叫学徒将2中的宝石复制一份放到1中的盒子里去(1中盒子里的珠宝自然就扔掉了),但学徒不解其意,企图将name这个盒子里的纸条,放到叫Pepole.name中去,结果,那个盒子是密封的,魔法无效……所以楼主束手无策。  | 
| 
 
刚开始学的时候感觉这样应该可以,其实不行的,memcpy吧,看下这个函数 
 | 
|
People(char * name){
    this->name=name;
}
主要是People的属性是char name[],而不是指针char *name,所以this->name = ??其实是向数组赋值,有一点需要注意,数组是不可以作为左值的。所以,若People的属性是char name[],是不可以直接赋值的。你可以通过strcpy/strncpy/memcpy等函数替换上面的这条语句:this->name = name;  | 
|
| 
 
string用= 
char []用strcpy且最好用strncpy 声明了一个类People,属性有char name[20];  | 
|
| 
 
memcpy() 
 | 
|
| 
 
this->name是不是数组名啊  那样是不行的  它只是一个常量  用楼上说的方法吧 
 | 
|
| 1分 | 
 
this->name其实是一个地址,你再给地址赋值,肯定是错的,只能去给这个地址放内容。 
 | 
| 2分 | 
People(char * name){
    strcpy(this->name, name); //数组不能直接赋值。。用strcpy。。
}
 | 
| 
 
基础知识都没掌握好啊 
 | 
|
| 
 | 
|
| 3分 | 
 正解!  | 
| 2分 | 
 
用strcpy有越界访问的风险。 
 | 
| 
 
内存的操作,的确用cpy比较好点 
 | 
|
| 
 
情何以堪。。。。。 
 | 
|
| 2分 | 
 
this->name=name;相当于改变了数组name[]的首地址, 
在C里, 数组一旦定义, 其起始地址不可改变  | 
| 5分 | 
 
数组不能给变量赋值,数组是存储数据的容器 
 | 
| 2分 | 
 数组名作为成员变量,拥有魔法免疫和抗性皮肤等技能,只能使用物理攻击或是化学攻击什么的  | 
| 5分 | 
 
strcpy() 或者memcpy() 
记得判断name的长度  | 
| 2分 | 
 
C/C++ code
 
People(char * name){ 12楼正解  | 
| 
 
原来C++的世界,并不孤单。 
 | 
|
| 
 8楼才是正解呐! People people("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
试试看!  | 
|
| 
 比喻挺有意思的,不知道是哪本书上的  | 
|