char animal[20] = "bear";double bubble = 3.2;char *ps;double *p;为什么可以直接ps=animal,并且cout<<ps就是ps指针指向的字符串而不是输出地址。而double 类型却需要p = &bubble,并且 cout<<p 是地址,而不是double类数值?
1 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
数组名的值是个指针常量,也就是数组第一个元素的地址,所以animal的类型是char *,可以直接ps=animal。而double 类型是个变量,要赋值给double *的指针变量需要取double 类型变量的地址,所以double 类型需要p = &bubble。cout标准输出对char *是按字符串来解析,所以cout<<ps输出的是字符串,cout标准输出对其他指针类型默认是按地址输出,所以cout<<p输出的是地址
- 1 回答
- 0 关注
- 592 浏览
添加回答
举报
0/150
提交
取消