今天在做一个练习时突然被char str[]和char* str给迷住了,研究了半天才搞定

在c++中对char类型做了特殊处理,原因是兼容c语言
eg:
   char str[]="abc\0def";
   这里的str是一个地址,c++在运行时会自动将str的地址从str[0]一直移动到“\0”;然后输出结果。\\abd\0

  char* str这个是一个野指针,千万别这样使用,在类中除外。

小练习
#include <iostream>
using namespace std;

class Book{
private:
    
char* str;
public:
    Book(
char str[]);
    
void show();
}
;
Book::Book(
char str[]){
    
this->str=str;
}
;
void Book::show(){
    cout
<<this->str<<endl;
}


int main(){
    Book b(
"abc\0def");
    b
->show();
}
最后一行写错了,应当是b.show();