拼接字符串常量


[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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM