C++编程问题请大神赐教谢谢...

char animal[20] = "bear";
double bubble = 3.2;
char *ps;
double *p;

为什么可以直接ps=animal,并且cout<<ps就是ps指针指向的字符串而不是输出地址。
而double 类型却需要p = &bubble,并且 cout<<p 是地址,而不是double类数值?


绝地无双
浏览 593回答 1
1回答

沧海一幻觉

数组名的值是个指针常量,也就是数组第一个元素的地址,所以animal的类型是char *,可以直接ps=animal。而double 类型是个变量,要赋值给double *的指针变量需要取double 类型变量的地址,所以double 类型需要p = &bubble。cout标准输出对char *是按字符串来解析,所以cout<<ps输出的是字符串,cout标准输出对其他指针类型默认是按地址输出,所以cout<<p输出的是地址
打开App,查看更多内容
随时随地看视频慕课网APP