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

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

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

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

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