qq_41517828 2018-08-08 03:19 采纳率: 25.9%
浏览 553
已采纳

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

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

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

  • 写回答

4条回答 默认 最新

  • xjw_87 2018-08-08 03:29
    关注

    数组名的值是个指针常量,也就是数组第一个元素的地址,所以animal的类型是char *,可以直接ps=animal。而double 类型是个变量,要赋值给double *的指针变量需要取double 类型变量的地址,所以double 类型需要p = &bubble。cout标准输出对char *是按字符串来解析,所以cout<<ps输出的是字符串,cout标准输出对其他指针类型默认是按地址输出,所以cout<<p输出的是地址

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效