Kac*_*aye 5 c++ arrays char-pointer
为什么以下作业不起作用?如果可能的话,我想要一个低级的解释。另外,这是我得到的编译器错误:'char*' 到 'char [20]' 赋值中的类型不兼容
class UCSDStudent {
char name[20];
public:
UCSDStudent( char name[] ) {
//this-> name = name; does not work! Please explain why not
strcopy( this -> copy, copy ); //works
}
};
Run Code Online (Sandbox Code Playgroud)
因为当您进行这样的函数调用时,UCSDStudent( char name[] )仅复制数组的地址name而不是整个数组。这是一个 C\C++ 功能。
此外,name定义的 aschar name [20]不是可修改的左值。
关于strcpy:它会带来未定义的行为,就好像你的源数组没有 NULL 字符一样,它也会复制一些垃圾this->name。您可以strcpy 在这里阅读更多相关内容
| 归档时间: |
|
| 查看次数: |
7394 次 |
| 最近记录: |