C++字符型指针无法输出的问题

时间:2024-03-29 19:27:54

有道毒鸡汤一碗:Whenever people agree with me,i always fell i must be wrong.
每次别人赞同我的时候,我都觉得自己一定错了。
这怕是只有大佬级别的人才有的感受吧。
========================================================今天在学C++的时候遇到一个问题,我想用cout输出一个字符串的首地址时,得到的却是整个字符串。
C++字符型指针无法输出的问题

插个题外话:
如果你在第7行不加const声明会报一个警告:test.cpp:7:17: warning: deprecated conversion from string constant to char
意思应该是:不接受被转换的字符串为常量字符串—-大概就是怕你直接用指针去修改这个字符串吧(蒙的)
解决方法:可以像我这样用const声明或者先定义一个char str[10]。

接着程序来讲:
恩,有没有感到奇怪,有这个问题,那你肯定和我一样是个菜鸡。
那是由于C++标准库中的I/O类对<<操作符重载,因此在遇到字符型指针的时候会将其作为字符串名进行处理,输出指针所指的字符串。

当然你有N种方法可以输出地址,只要不让编译器知道你是字符型指针就OK。
C++字符型指针无法输出的问题

static_cast是一个计算机函数,功能是把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性
也可以用这个函数来强转:static_cast < type-id > ( expression )
我感觉用这个函数多此一举:(你们感觉呢)
C++字符型指针无法输出的问题

而且前面定义时声明的const必须去掉,不然会报错误(无奈),static_cast 后的const不是必要的。