欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C 語(yǔ)言基礎(chǔ)教程(一)顏色加亮

 更新時(shí)間:2007年02月25日 00:00:00   作者:  
首先請(qǐng)看下面這個(gè)簡(jiǎn)單的 C 程序,猜猜它會(huì)做些什么。猜不出來(lái)也沒(méi)關(guān)系,后面會(huì)有詳細(xì)的解說(shuō)。
         #include <stdio.h>

         int main( void )            /* 一個(gè)簡(jiǎn)單的程序 */
         {
             int num;                  /* 定義一個(gè)名叫 num 的變量 */
             num = 1;                  /* 將 1 賦值給 num         */

             printf( "This is a simple C program.\n" ); /* 調(diào)用 printf 函數(shù) */
             printf( "My favorite number is %d because it is first.\n", num );

             return 0;
         }

     在對(duì)這個(gè)程序進(jìn)行詳細(xì)說(shuō)明之前,我想先請(qǐng)您用編譯器把它編譯成可執(zhí)行文件,并且運(yùn)行,看看運(yùn)行結(jié)果和您的猜想是否一致。如果不懂如何進(jìn)行編譯,請(qǐng)參考這三篇文章:
      編譯器使用方法
    編譯器Dev-C++安裝&使用教程
    Dev-C++ 下載

     下面,我將分兩步對(duì)這個(gè)程序進(jìn)行詳細(xì)的講解。第一步是概要說(shuō)明,也就是對(duì)程序中每一行代碼的含義作簡(jiǎn)單講解,以幫助您對(duì)這個(gè)程序有一個(gè)大致的理解。第二步是詳細(xì)說(shuō)明,也就是程序中的每一行代碼進(jìn)行詳細(xì)的講解,以加深您的理解。

    一、概要說(shuō)明
                 #include <stdio.h>    <-   把另外一個(gè)文件包含進(jìn)來(lái)
            這行代碼命令編譯器把頭文件.h 文件)stdio.h 中的內(nèi)容包含到我們的
       程序中。stdio.h是C語(yǔ)言的標(biāo)準(zhǔn)頭文件之一,提供對(duì)鍵盤輸入和顯示輸出等的
       支持。要使用 printf 函數(shù),就應(yīng)該包含這個(gè)頭文件。順帶一提,stdio 代表
       standard input/output,也就是標(biāo)準(zhǔn)輸入輸出的意思。

                 int main(void)    <-   函數(shù)頭
            
C 程序由一個(gè)或多個(gè)函數(shù)組成。我們的這個(gè)程序只有一個(gè)函數(shù):main 函數(shù)。
       圓括號(hào) () 表明 main 是一個(gè)函數(shù);int 表明 main 函數(shù)返回一個(gè)整數(shù);void 表明
       main 函數(shù)不接受任何參數(shù)。在此,請(qǐng)您緊記,int main(void) 是 ISO/ANSI C
     
 標(biāo)準(zhǔn)中定義的 main 函數(shù)定義方法之一。

                 /* a simple program */    <-   注釋
             /**/ 用于對(duì)程序進(jìn)行注釋說(shuō)明,幫助讀者更快更好地理解程序。編譯器
       會(huì)忽略 /* 和 */ 之間的內(nèi)容(包括 /* 和 */),不會(huì)對(duì)它們進(jìn)行編譯。

                 {        <-   函數(shù)體的開(kāi)端
             這個(gè)開(kāi)大括弧 { 標(biāo)志著函數(shù)體開(kāi)始。函數(shù)體以閉大括弧 } 結(jié)束。在 { 和 }
       之間的語(yǔ)句都屬于這個(gè)函數(shù)。

                 int num;     <-   聲明并且定義變量 num
             這個(gè)語(yǔ)句表明我們聲明并且定義了一個(gè)名叫 num 的變量。int 表明這個(gè)變量為
       整型變量。

                 num = 1;     <-   賦值語(yǔ)句
             這個(gè)語(yǔ)句將 1 賦值給變量 num 。執(zhí)行這個(gè)語(yǔ)句后,num 的值等于 1 。

                   printf( "This is a simple C program.\n" );    <-   函數(shù)調(diào)用語(yǔ)句
             printf 函數(shù)是 C 語(yǔ)言標(biāo)準(zhǔn)函數(shù)庫(kù)里的函數(shù)。這個(gè)語(yǔ)句調(diào)用 printf 函數(shù)在
        屏幕上顯示“
This is a simple C program.”,并且換行。\n換行符,它提示
        printf 開(kāi)始新的一行,也就是將光標(biāo)移動(dòng)到下一行的開(kāi)端。如果上面的語(yǔ)句中沒(méi)有
        \n ,那就不會(huì)換行,而且光標(biāo)會(huì)緊跟在“This is a simple program.”后面。

                   printf( "My favorite number is %d because it is first.\n", num );
             %d 告訴 printf 用num的值替換掉 %d ,并且以整數(shù)形式顯示num的值。
        因?yàn)?num 的值為 1 ,所以這個(gè)語(yǔ)句在屏幕上顯示“My favorite number is 1
       because it is first.
”,并且換行。

                 return 0;    <-   返回語(yǔ)句
             C 程序應(yīng)該返回一個(gè)數(shù)值給調(diào)用它的媒介。返回 0 代表程序無(wú)誤退出,
        返回 1 代表程序運(yùn)行時(shí)出錯(cuò)退出。

                 }     <-   函數(shù)體結(jié)束
           函數(shù)體以閉大括弧 } 結(jié)束。

    二、詳細(xì)說(shuō)明
         現(xiàn)在,讓我們進(jìn)一步來(lái)了解每一行代碼的含義。下面的內(nèi)容很基礎(chǔ),也很重要,
     必須認(rèn)真弄懂,牢牢掌握。

          1. #include 預(yù)處理指令頭文件
              在編譯器對(duì)我們寫的源程序進(jìn)行編譯之前,預(yù)處理器會(huì)對(duì)我們的寫的源代碼
       
進(jìn)行必要的處理,稱為預(yù)處理。#include 就是一個(gè)預(yù)處理指令,它命令預(yù)處理器
        進(jìn)行的預(yù)處理是:把特定的頭文件包含到我們的源代碼里。
            #include <stdio.h>的作用是將頭文件 stdio.h 里的內(nèi)容包含進(jìn)我們的程序,
        產(chǎn)生的結(jié)果是將 stdio.h 里的內(nèi)容一字不漏地插入 #include <stdio.h>出現(xiàn)的
        地方,并且刪除 #include <stdio.h>。換句話說(shuō),就是用 stdio.h 里的內(nèi)容替換
        #include <stdio.h>。這個(gè)過(guò)程是在預(yù)處理階段完成的。C 語(yǔ)言的這種包含文件的
        機(jī)制為多個(gè)程序共享相同信息提供了極大的方便。
            stdio.h 是 C 語(yǔ)言標(biāo)準(zhǔn)中定義了的頭文件,它包含著輸入輸出函數(shù)的信息。
        所有 C 編譯器都應(yīng)該有這個(gè)頭文件,這是 ANSI/ISO C 標(biāo)準(zhǔn)中規(guī)定的。當(dāng)然,
        ANSI/ISO C 規(guī)定的編譯器必須提供的頭文件可不止這么一個(gè)。標(biāo)準(zhǔn)還規(guī)定了許多
        別的頭文件,那些我們會(huì)在以后慢慢學(xué)到。
            有些程序需要包含 stdio.h ,而有些不需要。如果我們的程序沒(méi)有使用 printf
        函數(shù),那就不需要包含 stdio.h 。
            頭文件中包含著編譯器進(jìn)行編譯時(shí)所需的信息。頭文件中可能指明了函數(shù)名和
        函數(shù)調(diào)用方法,但是這些函數(shù)的實(shí)現(xiàn)代碼并不在頭文件中,而是在預(yù)先編譯好了的
        庫(kù)文件里。
            鏈接器負(fù)責(zé)在庫(kù)文件中尋找我們的程序所需的代碼,并且把那些代碼和我們寫的
        程序進(jìn)行鏈接,從而將我的寫的程序鏈接成可執(zhí)行文件。一句話,頭文件用于指導(dǎo)
        編譯器正確地將我們寫的源程序編譯成可執(zhí)行文件。

          2. main 函數(shù)
               在 C 語(yǔ)言中,main 函數(shù)是主函數(shù)。每個(gè) C 程序都必須有且只能有一個(gè)
       
main 函數(shù)(主函數(shù))!C 程序從 main 函數(shù)開(kāi)始執(zhí)行,并且在 main 函數(shù)中結(jié)束
            int是 main 函數(shù)的返回值類型,它表明 main 函數(shù)應(yīng)該返回一個(gè)整數(shù)給程序的
        激活者(如操作系統(tǒng))。
            如果您想了解更多關(guān)于 main 函數(shù)的東西,請(qǐng)點(diǎn)擊下面的鏈接:
              C/C++ 誤區(qū)一:void main

          3. 注釋
                    /* a simple program */
              /* */ 之間的內(nèi)容都是注釋。對(duì)程序進(jìn)行適當(dāng)?shù)淖⑨尶梢詭椭x者(包括您自己)
          更快更好地理解您寫的代碼。注釋可以在源程序中的任何地方書寫。/* 和 */ 之間的
          任何內(nèi)容(包括 /* 和 */)都會(huì)被編譯器忽略掉。注意:/ 和 * 必須緊挨在一起,
          它們之間不能有空格。
                     /* 我是注釋 */
                     /*我是
                       跨行注釋*/
                     /*
                       我也是注釋
                     */
              以上的注釋都是合法的;但下面的注釋是非法的,因?yàn)闆](méi)寫注釋結(jié)束標(biāo)記 */。
                     /* 非法,沒(méi)有注釋結(jié)束標(biāo)記
              下面這個(gè)注釋可能會(huì)出乎你的意料:
                     /* 我是注釋開(kāi)始標(biāo)記
                     /* 哦哦,我不是注釋開(kāi)始標(biāo)記
                        我是注釋結(jié)束標(biāo)記,我和第一個(gè) /* 匹配,而不是和第二個(gè) /* 匹配。*/
              上面這個(gè)注釋中,注釋結(jié)束標(biāo)記 */ 和第一個(gè) /* 匹配,它們之間的內(nèi)容
          都被視為注釋。

              C99 中增加了另外一種注釋方式,這種注釋方式使用 // 作為注釋符,和 //
          處于同一行,并且在 // 右邊的內(nèi)容都被當(dāng)作注釋。/ / 之間不能有空格。
                     // 我是注釋
                     int rigue;      //注釋放在這里也是合法的
              上面的注釋在 C99 中是合法的,但是在 C89 中是非法的。也就是說(shuō),老舊的
          編譯器可能不支持 // 注釋符。VC6 支持 //,TC2 不支持。

          4. 大括號(hào)與函數(shù)體
               C 語(yǔ)言中,所有函數(shù)都以大括?。?FONT color=#1196ee>{ })作為界定符。函數(shù)體從開(kāi)大括弧 {
        開(kāi)始,以閉大括弧 } 結(jié)束。在后續(xù)教程中,我會(huì)對(duì)函數(shù)進(jìn)行更詳細(xì)的講解。

          5. int num;
               這個(gè)語(yǔ)句聲明并且定義變量 num 。這一行末尾的分號(hào);)表明這一行
        是一個(gè)語(yǔ)句。; 是語(yǔ)句的一部分,單獨(dú)一個(gè) ; 也是一個(gè)合法的 C 語(yǔ)句。
             int 是 C 語(yǔ)言中的一個(gè)關(guān)鍵字,它代表 C 語(yǔ)言里的一種基本數(shù)據(jù)類型:整型。
        關(guān)鍵字是語(yǔ)言的保留字,不能用作其它用途。例如:我們不能關(guān)鍵字來(lái)做變量名或者
        函數(shù)名。
             標(biāo)識(shí)符是指我們?yōu)樽兞炕蚝瘮?shù)等取的名字。在這個(gè)語(yǔ)句中,num 就是標(biāo)識(shí)符。
             C 語(yǔ)言中,所有變量在使用前都必須聲明。C89 中,變量的聲明必須位于
        函數(shù)體或者程序塊的開(kāi)端。例如:
                  int main( void ) /* C89 */
                  { /* 函數(shù)體開(kāi)始 */
                      int doors;
                      int dogs;
                      doors = 5;
                      dogs = 3;
                      { /* 程序塊開(kāi)始 */
                           int dig;
                           int dug;
                           dig = 6;
                           dug = 8;
                      } /* 程序塊結(jié)束 */

                      return 0;
                  } /* 函數(shù)體結(jié)束 */
             而在 C99 中,聲明可以位于函數(shù)體或者程序塊的任何地方。但是,變量仍然
        需要在聲明之后才可使用。例如:
                  int main( void ) /* C99 */
                  { /* 函數(shù)體開(kāi)始 */
                      int doors;
                      doors = 5;
                      { /* 程序塊開(kāi)始 */
                          int dig;
                          dig = 6;
                          int dug;
                          dug = 8;
                      } /* 程序塊結(jié)束 */
                      int dogs;
                      dogs = 3;

                      return 0;
                  } /* 函數(shù)體結(jié)束 */
             上面的程序在 C99 中是合法的,但是在 C89 中卻是非法的。當(dāng)前支持C99 的
        編譯器不多,所以上面的代碼您的編譯器很有可能編譯不了。故而,為了使我們的
        代碼具有良好的可移植性,我們應(yīng)該盡可能少用,甚至不用 C99 中的新特性。

        6. 賦值
                  num = 1;
             賦值是 C 語(yǔ)言中的一種基本操作。上面的語(yǔ)句是一個(gè)賦值語(yǔ)句,它的含義
        是:將 1 賦值給變量 num 。賦值操作完成后,num 的值等于 1 。

        7. printf 函數(shù)
             printf( "This is a simple C program.\n" );
             printf( "My favorite number is %d because it is first.\n", num );

            這兩行代碼都調(diào)用了 printf 函數(shù)。printf 是一個(gè)標(biāo)準(zhǔn) C 函數(shù),也就是說(shuō),
        它是 C 語(yǔ)言標(biāo)準(zhǔn)函數(shù)庫(kù)里定義了的函數(shù)。圓括號(hào) () 表明 printf 是一個(gè)函數(shù),
        圓括號(hào)里的內(nèi)容會(huì)被傳遞給 printf 函數(shù)。例如,上面第一行代碼把“This is a
        simple C program.\n”(不包括雙引號(hào))傳遞給 printf 函數(shù),然后由 printf
        函數(shù)把這些信息顯示于顯示器。\n換行符,它提示 printf 開(kāi)始新的一行。
        正因?yàn)?\n 是換行符,所以 \n 不會(huì)顯示出來(lái),而是進(jìn)行了換行。如果上面的語(yǔ)句中
        沒(méi)有 \n ,那就不會(huì)換行。
            上面代碼第二行中的 %d 告訴 printf 用 num 的值替換掉 %d ,并且以
        整數(shù)形式顯示 num 的值。
             %d 被稱為占位符,它告訴 printf 應(yīng)該在什么地方顯示 num 的值。% 用于
        提醒 printf 在此處顯示一個(gè)變量的值(本例中是 num 的值);d 告訴 printf 以
        十進(jìn)制整數(shù)的形式顯示 num 的值。

        8. return(返回)語(yǔ)句
                   return 0;
             這個(gè) return 語(yǔ)句是我們程序中的最后一個(gè)語(yǔ)句。int main( void ) 中的 int
        表示 main 函數(shù)應(yīng)該返回一個(gè)整數(shù),所以我們要使用 return 語(yǔ)句來(lái)返回一個(gè)整數(shù)。
             如果您想了解更多關(guān)于返回值的東西,請(qǐng)點(diǎn)擊下面鏈接,查看文章的第四點(diǎn)。
                   C/C++ 誤區(qū)一:void main

           
    上面所說(shuō)的某些內(nèi)容您暫時(shí)可能還不太理解,但是不用害怕,牢牢地把它們記住,然后繼續(xù)往下學(xué)吧!隨著學(xué)習(xí)的深入,就會(huì)逐漸搞明白。現(xiàn)階段只要有這個(gè)概念就足夠了。

相關(guān)文章

  • C語(yǔ)言中strcpy()函數(shù)的具體實(shí)現(xiàn)及注意事項(xiàng)

    C語(yǔ)言中strcpy()函數(shù)的具體實(shí)現(xiàn)及注意事項(xiàng)

    C語(yǔ)言庫(kù)函數(shù)char *strcpy(char *dest, const char *src)把src所指向的字符串復(fù)制到dest,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中strcpy()函數(shù)的具體實(shí)現(xiàn)及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 詳解C++中的一維數(shù)組和二維數(shù)組

    詳解C++中的一維數(shù)組和二維數(shù)組

    這篇文章主要介紹了詳解C++中的一維數(shù)組和二維數(shù)組,是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • vscode刷acm、leetcode的題目

    vscode刷acm、leetcode的題目

    vscode是一款越來(lái)越受碼農(nóng)們喜愛(ài)的軟件,大多數(shù)人學(xué)習(xí)編程繞不開(kāi)的一部分就是算法,很多人都喜歡刷LeetCode的題目,本文就來(lái)介紹一下
    2021-06-06
  • c++編程學(xué)習(xí)的技巧總結(jié)

    c++編程學(xué)習(xí)的技巧總結(jié)

    在本篇文章里小編給大家分享了關(guān)于c++編程學(xué)習(xí)的技巧以及知識(shí)點(diǎn)總結(jié),需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • C語(yǔ)言編程中函數(shù)的基本學(xué)習(xí)教程

    C語(yǔ)言編程中函數(shù)的基本學(xué)習(xí)教程

    這篇文章主要介紹了C語(yǔ)言編程中函數(shù)的基本學(xué)習(xí)教程,其中著重講到了傳值調(diào)用與參數(shù),需要的朋友可以參考下
    2015-12-12
  • C++私有繼承與EBO深入分析講解

    C++私有繼承與EBO深入分析講解

    這篇文章主要介紹了C++私有繼承,在私有繼承當(dāng)中,基類的公有成員和保護(hù)成員都會(huì)成為派生類的私有成員。這意味著基類的方法都會(huì)被private關(guān)鍵字描述,我們可以在派生類中使用它,但類對(duì)象無(wú)法直接調(diào)用,下面來(lái)看看詳細(xì)內(nèi)容吧
    2022-08-08
  • Visual Studio新建類從默認(rèn)internal改為public

    Visual Studio新建類從默認(rèn)internal改為public

    本文將介紹如何將Visual Studio中的internal修飾符更改為public,以實(shí)現(xiàn)更廣泛的訪問(wèn)和重用,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能

    C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C++中的模板類&模板函數(shù)

    C++中的模板類&模板函數(shù)

    這篇文章主要介紹了C++中的模板類&模板函數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++17結(jié)構(gòu)化綁定的實(shí)現(xiàn)

    C++17結(jié)構(gòu)化綁定的實(shí)現(xiàn)

    這篇文章主要介紹了C++17結(jié)構(gòu)化綁定的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論