static_cast转换(const char *cp)的思考

c++ primer第五版145页

首先声明了一个

const char *cp;

之后

static_cast<string>(cp)是合法的。

好吧,不太能理解,我明白只要不改变const属性可以用static_cast,问题是把什么转换成了string,书上说的是把字符串字面值转换成了string类型

为什么呢???

在c++中,一个字符串常量表示的是该字符串第一个元素的地址,就跟char*,char数组名表示的是字符串第一个元素的地址一样。

附一篇有用的博文,https://www.cnblogs.com/GuoYuying/p/11391981.html

说明以下两种初始化的差异

char a[20] = "1234";const char * p = "1234";

因此,我的理解是const char *cp就是一个字符串字面值类型,对他使用static_cast<string>(cp)将整个类型转换成string类型。

问题又来了,那么string类型是不是一个常量呢?

一般有这样的初始化语句

string s=“sssss”;这是将“sssss”拷贝给了s

后面的我不知道了,相通再写吧



上一篇:[Linux文件管理、配置文件目录、vim编辑器]


下一篇:文件管理基础命令之二