const char* p = "阿斯蒂芬";
cout<<p<<endl;//可以直接得出”阿斯蒂芬“的内容
const int* a = (int*)10;
cout << a << endl;//这里的出来的却是“10”的存储地址
cout <<*a<< endl;//如此才得出“10”的内容
为什么字符串指针不需要通过*来获得指针指向的内容呢?
const char* p = "阿斯蒂芬";
cout<<p<<endl;//可以直接得出”阿斯蒂芬“的内容
const int* a = (int*)10;
cout << a << endl;//这里的出来的却是“10”的存储地址
cout <<*a<< endl;//如此才得出“10”的内容
为什么字符串指针不需要通过*来获得指针指向的内容呢?
你要理解指针*的概念,以及字符串的概念
定义成指针*实际是指向一块地址,而取这块地址中对应的值可以在前面加个*的方式.
而字符串的概念,定义一个字符串,指向的是字符串首地址,直到识别到字符串的终结符(‘\0’),也就是说字符串是通过地址取实际数据的。
所以,int *和char *(表示字符串时),有一点差异,除此之外,如果char *不表示字符串,单纯的表示一个char类型的指针,也可以用* 来取对应的值。