码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2021-06-28 17:58:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:类型转换   字符   就是   转换   两种   字符串常量   string类   类型   说明   

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)的思考

标签:类型转换   字符   就是   转换   两种   字符串常量   string类   类型   说明   

原文地址:https://www.cnblogs.com/lijinshu/p/14932637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!