拼接字符串常量

简介: [cpp] view plaincopy   #define FAMILY_NAME "曾"   printf(FAMILY_NAME "Jack");     最近看到有类似这样的c++代码,当时一看,我靠,还有这样写的啊!什么情况!这样也能行! 我当时还不信,认为一定会报语法错误,于是测试下,还真可以。
[cpp]  view plain copy
 
  1. #define FAMILY_NAME "曾"  
  2. printf(FAMILY_NAME "Jack");  

 

最近看到有类似这样的c++代码,当时一看,我靠,还有这样写的啊!什么情况!这样也能行!

我当时还不信,认为一定会报语法错误,于是测试下,还真可以。

 

起初还以为是,函数传递参数时,做了特殊处理...于是乎char str[]=FAMILY_NAME "Jack";试了试!居然也行!
字符串可以,int数组不知道行不行!额,int arry[]={1,2,3}{4,5,6};//这样不可以!

网上查阅资料,群里问大神!最后还是在C++ Primer里找到答案!原来这原本就是C++语法的一部分,叫拼接字符串常量!

唉,学了将近两年的c++了!这样的语法都没见过!以后出去都不敢说自己是学c++的了!c++的路还很遥远啊!

在实习的日子里一定要跟着带我的大哥好好学习!


c++Primer 解释
拼接字符串常量:
有时候字符串很长,无法放到一行中。就可以使用拼接字符串常量!即将两个引号括起的字符串合并为一个!
"曾" "Jack"<==等价==>"曾Jack";
当然你也许要说,当字符串很长时,可以这样:

[cpp]  view plain copy
 
  1. char str[]="abc"\  
  2.  "erg";  

但是用了“\”这就一定要换行哦(即"abc"和"erg"不能在同一行);

 

 

测试例子如下:

int _tmain(int argc, _TCHAR* argv[])
{

char* szChar1 = "12345"
"6789"
"abcd";

char* szChar2 = "12345" "6789" "abcd";

char* szChar3 = "12345"
"6789"
"abcd";

char* szChar4 = "12345"\
"6789"\
"abcd";

//上面这些写法都可以使用

 

 

//char* szChar5 = "12345"\"6789"\"abcd"; //这种写法错误

int i = 1;
return 0;
}

目录
相关文章
|
8月前
|
存储 C++
c++字符和不常见常量
c++字符和不常见常量
71 0
|
5月前
|
C++
【学习笔记】【C/C++】 c++字面值常量
【学习笔记】【C/C++】 c++字面值常量
55 1
|
8月前
|
存储 Java 编译器
字符串常量和字符串字面值
字符串常量和字符串字面值
171 1
|
8月前
|
C语言
C语言常量与变量、字符串与转义字符
C语言常量与变量、字符串与转义字符
61 0
|
8月前
|
存储 Java 编译器
字符串常量和字符串字面值:区别与联系
字符串常量和字符串字面值:区别与联系
|
8月前
|
存储 编译器 程序员
C++中的宏定义和字符串字面值的区别
C++中的宏定义和字符串字面值的区别
|
8月前
String类及相应的字符串操作方法
String类及相应的字符串操作方法
105 1
|
8月前
常量字符串
常量字符串
33 0
用于字符串的 + 运算符
用于字符串的 + 运算符
79 0
|
存储 Java 编译器
初识C语言第一话之数据类型、常量变量、字符串、转义字符与注释
初识C语言第一话之数据类型、常量变量、字符串、转义字符与注释
165 0
初识C语言第一话之数据类型、常量变量、字符串、转义字符与注释