| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1349 人关注过本帖, 1 人收藏
标题:最好谢谢林大大,辛苦了,我想知道除了c在c++里字符串字面量是什么形态
只看楼主 加入收藏
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
收藏(1)
已结贴  问题点数:51 回复次数:8 
最好谢谢林大大,辛苦了,我想知道除了c在c++里字符串字面量是什么形态
谢谢大佬
搜索更多相关主题的帖子: 字符串 c++ 
2020-03-26 20:48
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
请说

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-26 21:08
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
c++字符串就不一样了,,,
c++string包含以下文件:
程序代码:
#include <bits/c++config.h>
#include <bits/stringfwd.h>
#include <bits/char_traits.h>  // NB: In turn includes stl_algobase.h
#include <bits/allocator.h>
#include <bits/cpp_type_traits.h>
#include <bits/localefwd.h>    // For operators >>, <<, and getline.
#include <bits/ostream_insert.h>
#include <bits/stl_iterator_base_types.h>
#include <bits/stl_iterator_base_funcs.h>
#include <bits/stl_iterator.h>
#include <bits/stl_function.h> // For less
#include <ext/numeric_traits.h> 
#include <bits/stl_algobase.h> 
#include <bits/range_access.h>
#include <bits/basic_string.h>
#include <bits/basic_string.tcc> 
收到的鲜花
  • 叶纤2020-03-26 23:42 送鲜花  2朵   附言:谢谢大大的指导

2020-03-26 21:12
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
以下是引用return_0在2020-3-26 21:12:38的发言:

c++字符串就不一样了,,,
c++string包含以下文件:

#include <bits/c++config.h>
#include <bits/stringfwd.h>
#include <bits/char_traits.h>  // NB: In turn includes stl_algobase.h
#include <bits/allocator.h>
#include <bits/cpp_type_traits.h>
#include <bits/localefwd.h>    // For operators >>, <<, and getline.
#include <bits/ostream_insert.h>
#include <bits/stl_iterator_base_types.h>
#include <bits/stl_iterator_base_funcs.h>
#include <bits/stl_iterator.h>
#include <bits/stl_function.h> // For less
#include <ext/numeric_traits.h>
#include <bits/stl_algobase.h>
#include <bits/range_access.h>
#include <bits/basic_string.h>
#include <bits/basic_string.tcc>

谢谢大大给我讲解字符串字面量,我还是想把这个分给林大大

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-26 21:18
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
林版主大大您上次补充了一些c的字符串字面量知识,我有点懵了,分不清C和C++了,能否讲解一下C++的知识

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-26 22:01
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:51 
C - 字符串字面量
基本概念 0结尾的字符数组 不需要讲了
说点冷知识

====================================================================
L前缀表示 wchar_t元素组成
L"1235" 是wchar_t[6]类型的数组
C11开始加了另外3种前缀 u8/u/U
分别表示 UTF-8字符串字面量/16位宽字符串字面量/32位宽字符串字面量
注意小u大U分别表示不同的类型
嗯 听一下就好 很少看到有人用过
====================================================================
预编译阶段会把连续2个字符串字面量连接起来
"123"
"456"
会被组成
"123456"
需要注意 不同前缀的字符串不能摆在一起
====================================================================
转义字符中 八进制转义最多3位 十六进制转义不限制位数//简直有病
所以
"\1234"表示 '\123' '4' 0 一共3个字节组成的字符串
"\x00000000000000000000000000000000000000000000000000000000000000FF" 表示'\xFF' 0 一共2个字节组成的字符串
====================================================================
静态存储 也就是说生存期是整个进程运行期
所以
char* foo()
{
    return "123";
}

是合法的
====================================================================
不保证字符串字面量占用相同地址 但也不限制
"123" == "123"
可以是 1 也可以是0
还有比较特别的
"123" + 1 == "23"
这个表达式 有可能是 1
这种东西一般是说给编译器作者听的
编译器优化代码的时候 后缀相同的字符串字面量重叠存储 节省内存占用
一般人听听就好 没什么用
====================================================================
"1023" 是 char[5]类型 不是 signed char[5] 也不是 unsigned char[5]
这个属于历史包袱 需要注意使用字符串的时候不要假设数组元素是有符号 也不要假设数组元素是无符号
如果使用场景需要明确有符号/无符号  需要专门使用 signed char [N]/ unsigned char [N]
====================================================================
字符串字面量可以是多个字符串 "123\0132" 占用8个字节 有2个字符串在里面
====================================================================
不是常量
所以
case (int)123.4:; 是正确的
case (int)"132":; 是错误的
====================================================================
大概是这些了

C++字符串字面量
基本内容和C一样 但有2点和C不同 需要注意
1 全部字符串字面量类型都带const
2 C++字符串字面量 原始字符前缀R 分隔符()里面的字符不转义
R"(\123)" 表示 "\\123"
比较特别的是 换行都会保留
R"(
1231
)"
表示 "\n1231\n"
收到的鲜花
  • 叶纤2020-03-26 23:41 送鲜花  2朵   附言:谢谢大大的耐心指教

https://zh.
2020-03-26 22:33
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
谢谢大大,那c++字符串字面量是一个常量吗?

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-26 23:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
字符串字面量
https://zh.
收到的鲜花
  • 叶纤2020-03-26 23:40 送鲜花  2朵   附言:谢谢,大大
2020-03-26 23:25
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
    嘻嘻,溜啦,溜啦,您上次教我的我没忘的

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-26 23:31
快速回复:最好谢谢林大大,辛苦了,我想知道除了c在c++里字符串字面量是什么形态 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014342 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved