C語言學習趣事_關於C語言中的空格

來源:互聯網
上載者:User

       今天開始自學C語言, 其實早就接觸過一些C語言的編程知識,但是一直以來發現自己的語言功底不夠紮實,因此想要從新好好學習學習C語言。

首先進行一個測試:

Exp_1:

#include <stdio.h>

int main(int argc,char *argv[])

{

     printf("Hello word

            ");

     getch();

}

看到這個地方,不知道大家認為這個程式有什麼異常沒有, 從我曾經學習過的C語言書籍來看,我得到的知識點是這樣的: 在C語言的編譯過程中,空格是不被編譯的,就是說如果我們在C語言的程式碼中插入一個、兩個或者三個,甚至更多的空格,其編譯結果是一樣的。

例如:

Exp2: 定義函數變數

   int  iAge;   //一個空格

        int      iAge; // 多個空格 

很顯然上面的兩個定義整型資料的C語句具有一致的效果。

Exp3: 賦值和運算語句

        iAge = 100 ; // 賦值運算子的左值和右值之間一個空格

        iAge=100;   //賦值運算子的左值和右值之間沒有空格

        iAge+=100; // 加法運算之間沒有空格

        iAge += 100; //加法運算之間有空格

很顯然這些語言也都成立。

是否就是說: 在C語言編譯器裡面空格是可以被忽略的呢?

雖然上面例舉的執行個體都證明在某些情況下C的編譯器會忽略空格,但是不能代表在所有的地方一個空格和兩個空格就是一樣的。

如果在WinTC上編譯或者在Turbo C上編譯,可以發現前面的Exp1是不能被編譯通過的:

會報:   沒有結束引號的字串   ——》  printf("Hello word

這就證明在C語言中空格也不是隨便就可以加的。

那麼什麼時候空格不能被忽略呢?

下面簡單的總結幾項, 都是一孔之見,歡迎各位彎腰找板磚..............................

1、   C標準裡面規定的組成關鍵字的字元間不能出現空格,例如:

         int   不能寫出  i nt

2、   定義使用者自訂標識符時,組成標識符的字元間不能有空格,例如:

         int  iAge; 不能寫成  int i Age;

3、  C語言定義的多字元組成的運算子之間不能有空格,例如:

        iAge+=100;   這個地方的 +=之間就不能有空格, 這個現象僅限於兩字元或者三字元的運算子。當然   ? :  這個運算子除外。

4、  在編輯C原始碼時,使用者定義的字串字面值,就是通常說的字串常量的後引號之間,不能出現斷行符號帶來的空格。例如:

       “Hello word ”;

不能寫成:“Hello word

                ”;

在第四種情況下可以利用  “ \ ” 符號來消除編輯期間斷行符號帶來的副作用。

     例如:   “Hello  Word” ;就可以定義為

     "Hello word   \

      "

*** 重點介紹一下 反斜線 " \ "

我們知道當我們一行寫不下一個C語言語句時, 我們可以使用續行符 "\" 來續行,但是我們依然可以在一行可以寫下代碼時使用它。如:

Exp4:

       printf("Hello Word\! ");

      這裡會輸出什麼呢? 一般我們學習是得到的教育是:printf裡面的第一個字串參數原樣輸出,即會輸出: Hello Word\!

但是實際輸出卻不是上面描述的,而是:

       Hello Word!

就是說在C語言編譯器裡面, 當我們使用單獨的一個 "\" 時他就是一個續行符, 哪怕這個續行是在一行也是一樣。 (當存在逸出序列時除外)。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.