2017-04-18 33 views
-9

我试图意外下面的C代码:如何解释C代码:char * s =“hello”“world”;

char *str = "hello " "world"; 

这是正确的,但我无法理解。如何解释这种仪器?

+1

你有什么发现了自己呢?你的C书说什么?在线教程?你的编译器?什么?那和编译器的构建有什么关系? (并且它不是gcc特定的)。 – Olaf

+2

相邻的字符串文字被连接起来。你可以查看它。 – DeiDei

回答

0

按照C标准(5.1.1.2翻译相)

  • 相邻字符串文字令牌是级联。
  • 所以这个翻译阶段之后这段代码

    char *str = "hello " "world"; 
    

    调整为

    char *str = "hello world"; 
    

    至于导致指针str指向字符串字面"hello world"的第一个字符。