C++/C 中数组名以及char* a = new char[4];声明的数组指针,其类型都是数组指针类型,在内存中分配一段连续的空间,指向一段字符串。而char* b;则仅是字符指针,指向一段字符大小的内存空间。
而cout<<a<<endl;会出现什么呢?是a指向的数组字符串。 而cout<<*a<<endl;会出现什么呢?是a指向的数组首个字符串。第一个为什么不是一个地址值呢??C和C++标准对char型数组的首地址输出做了个特殊规定,直接输出首地址的话,会输出数组内容。
而如果是int* a = new int[4];的话,就输出形如0xXXXXXXX的地址值。