2017-04-18 35 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"的第一個字符。