为什么我可以传递这样的字符串参数?这种风格安全吗?

时间:2015-05-12 09:01:49

标签: c++ string

我在XCode中使用c ++传递两个字符串作为一个参数。我在XCode中试过这个并且它可以工作。但这在所有平台上都是安全的吗?

#include <iostream>

void log_person(const char* name_and_number){
    printf("name and number : %s.\n", name_and_number);
}
int main(int argc, const char * argv[]) {
    log_person("jim" "123456789");
    return 0;
}

1 个答案:

答案 0 :(得分:5)

您正在传递一个字符串。此

"Foo" "Bar"

完全等同于

"FooBar"

所以你的电话和

一样
log_person("jim123456789");

这是标准的C ++,所以&#34;安全&#34;在任何符合要求的实施。请参阅C ++ 11标准中的 2.14.5 / 13

  

2.14.5字符串文字

     

...

     

13 在翻译阶段6(2.2)中,相邻的字符串文字被连接起来....