THU-xlj
2016-05-18 03:29
采纳率: 71.4%
浏览 1.4k
已采纳

为什么返回值是个字符串"123"就必须用const char* c接收。

为什么返回值是个字符串"123"就必须用const char* c
接收。而且cout的时候直接cout<<c就行了c不应该是个指针吗不应该cout<<*c 才对嘛?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 小灸舞 2016-05-18 07:41
    已采纳

    1."123表示的是处于常量区的常量字符串,该区域一般是禁止进行写操作的(相当于const)
    你如果不用const char *接收,而仅仅是用char *指针接收,那么意味着可以通过该指针去修改该字符串,很可能引起异常
    (你不能将访问权限将扩大)
    2.因为c++里对于<<专门重载了char *类型,所以可以输出一整个字符串

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 恋恋西风 2016-05-18 04:18

    1."123" 是一个常,不是一个变量;
    2.count<<c 其它是从指针的首地址打印,到'\0',结束;

    评论
    解决 无用
    打赏 举报
  • lbcab 2016-05-18 04:37
    1. 像 int a = 4; string s = "12345"; 这种的 4, "12345"通常都被称作魔数, 他们凭空产生, 这些值是常量, 不是变量, 存储在内存常量区,程序结束由系统释放
    2. cout是标准输出流, 他会自动根据输出的数据进行格式化, 而不像c中printf需要接收格式化的参数
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题