C/C++教程

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

本文主要是介绍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

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


这篇关于static_cast转换(const char *cp)的思考的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!