• 拼接字符串常量


    [cpp] view plaincopy
     
    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 plaincopy
     
    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;
    }

  • 相关阅读:
    Nodejs怎样在服务端写定时脚本,自动备份MongoDB数据库,并记录日志
    nodejs-websocket初使用
    CSS3的复习笔记
    ES6的新增特性
    Windows下初体验MongoDB数据库
    Node.js数据库的配置,封装query
    Nuxt+Vuex初体验
    Vue+Vuex初体验
    github二级域名配置
    钉钉静默安装
  • 原文地址:https://www.cnblogs.com/lidabo/p/4573083.html
Copyright © 2020-2023  润新知