C語言入門教程之一變量和常量

 編譯環境設置好以後,就可以正式學習C語言了。
一、變量
    (一)、變量類型和表示方法
        1.什麼是變量?一句話,變量是存儲數據的值的空間。由於數值的類型有多種,有整數、小數(浮點數)、字符等等,那麼對應的變量就有整型變量、浮點型變量、字符型變量。變量還有其他的具體分類。整型變量還可具體分爲無符號型、長整型和短整型。浮點型也可分爲單精度型、雙精度型和長雙精度型。此外還可以分爲靜態變量、外部變量、寄存器變量和自動存儲變量。這些數據類型我們在本節和後面的章節中都會陸陸續續介紹。
        那麼變量我們總要給它取個名字吧,這個名字我們叫做標識符。
        標識符的命名有一定的規則:
          (1).標識符只能由字母、數字和下劃線三類字符組成
          (2).第一個字符必須是字母(第一個字符也可以是下劃線,但被視作系統自定義的標識符)
          (3).大寫字母和小寫字母被認爲是兩個不同的字符,如A和a是兩個不同的標識符        
          (4).標識符可以任意長,但只有前32位有效。有些舊的C版本對外部標識符的限制爲6位。這是由於鏈接程序的限制所總成的,而不是C語言本身的侷限性
          (5).標識符不能是C的關鍵字
        2.從上面的規則中,有個關鍵字的概念。那麼什麼叫關鍵字呢?
        從表面字意上也可以看出,關鍵字是C語言本身某些特性的一個表示,是唯一的代表某一個意思的。
        下面列出ANSI標準定義的32個C語言的關鍵字,這些關鍵字在以後的學習中基本上都會用到,到時再說它們的各自用法。
        auto    break   case    char    const    continue  default
        do      double  else    enum    extern   float     for
        goto    if      int     long    register return    short
        signed  sizeof  static  struct  switch   typedef
        union   unsigned        void    volatile while
        C語言還包括一些不能用做標識符的擴展關鍵字。
        asm    cdecl  _cs   _ds   _es    far  
        huge   interrupt    near  pascal _ss
        所以在以後的學習中,在給變量命名時要避開這些關鍵字。
        3. Turbo C2.0規定所有變量在使用前都必須加以說明。一條變量說明語句由數據類型和其後的一個或多個變量名組成。變量說明的形式如下: 
            類型 <變量表>; 
        這裏類型是指Turbo C2.0的有效數據類型。變量表是一個或多個標識符名,每個標識符之間用,分隔。
    (二)、整型變量
        整型變量是用來存儲整數的。
        整型變量又可具體分爲好幾種,最基本的整型變量是用類型說明符int聲明的符號整型,形式如下:
          int Counter;
        這裏int是類型說明符,Counter是變量的名字。
        整型變量可以是有符號型、無符號型、長型、短型或象上面定義的普通符號整型。
        整型是16位的,長整型是32位,短整型等價於整型。
        以下是幾種整型變量的聲明示例:
          long int Amount;      /*長整型*/
          long Amount;          /*長整型,等價於上面*/
          signed int Total;     /*有符號整型*/
          signed Total;         /*有符號整型,等價於上面*/
          unsigned int Offset;  /*無符號整型*/
          unsigned Offset;      /*無符號整型,等價於上面*/
          short int SmallAmt;   /*短整型*/
          short SmallAmt;       /*短整型,等價於上面*/
          unsigned short int Month; /*無符號短整型*/
          unsigned short Month;   /*無符號短整型,等價於上面*/
        從上面的示例可以看出,當定義長整型、短整型、符號整型或無符號整型時,可以省略關鍵字int。
        註明:
         1.用signed對整型變量進行有符號指定是多餘的,因爲除非用unsigned指定爲無符號型,否則整型都是有符號的。
         2.當一個變量有幾重特性時,聲明關鍵字的順序可以任意。以下幾種聲明是等價的:
          unsigned long T1;
          long unsigned T2;
          unsigned long int T3;
          unsigned int long T4;
          long unsigned int T5;
          long int unsigned T6;
          int unsigned long T7;
          int long unsigned T8;
    (三)、浮點類型變量
        顧名思義,浮點類型變量是用來存儲帶有小數的實數的。
        C語言中有三種不同的浮點類型,以下是對這三種不同類型的聲明示例:
          float Amount;                 /*單精度型*/
          double BigAmount;             /*雙精度型*/
          long double ReallyBigAmount;  /*長雙精度型*/
        這裏Amount,BigAmount,ReallyBigAmount都是變量名。
        浮點型都是有符號的。
    (四)、字符型變量
        字符型變量中所存放的字符是計算機字符集中的字符。對於PC機上運行的C系統,字符型數據用8位單字節的ASCII碼錶示。程序用類型說明符char來聲明字符型變量:
            char ch;
        這條聲明語句聲明瞭一個字符型變量,標識符爲ch。當以這種形式聲明變量之後,程序可以在表達式中引用這個變量,關於語句和表達式的知識在後面將會介紹。
        字符數據類型事實上是8位的整型數據類型,可以用於數值表達式中,與其他的整型數據同樣使用。在這種情況下,字符型變量可以是有符號的,也可以是無符號的。對於無符號的字符型變量可以聲明爲:
            unsigned char ch;
        除非聲明爲無符號型,否則在算術運算和比較運算中,字符型變量一般作爲8位有符號整型變量處理。
        還有其他的如指針型變量,void型變量,以後再介紹。

二、常量
    常量的意思就是不可改變的量,是一個常數。同變量一樣,常量也分爲整型常量、浮點型常量、字符型常量,還有字符串常量、轉義字符常量和地址常量。
    (一)、整型常量
        整型常量可以是長整型、短整型、有符號型、無符號型。在Tubbo C 2.0裏有符號整型常量的範圍從-32768到32767,無符號整型的爲0到65535;有符號長整型的範圍爲-2147483648到2147483647。無符號長整型的範圍爲0到4294967295。短整型同字符型。
        可以指定一個整型常量爲二進制、八進制或十六進制,如以下語句:
            -129, 0x12fe, 0177
        常量的前面有符號0x,這個符號表示該常量是十六進制表示。如果前面的符號只有一個字母0,那麼表示該常量是八進制。
        有時我們在常量的後面加上符號L或者U,來表示該常量是長整型或者無符號整型:
            22388L, 0x4efb2L, 40000U
        後綴可以是大寫,也可以是小寫。
    (二)、浮點型常量
        一個浮點型常量由整數和小數兩部分構成,中間用十進制的小數點隔開。有些浮點樹非常大或者非常小,用普通方法不容易表示,可以用科學計數法或者指數方法表示。下面是一個實例:
            3.1416, 1.234E-30, 2.47E201
        注意在C語言中,數的大小也有一定的限制。對於float型浮點數,數的表示範圍爲-3.402823E38到3.402823E38,其中-1.401298E-45到1.401298E-45不可見。double型浮點型常數的表示範圍爲-1.79E308到1.79E308,其中-4.94E-324到4.94E-324不可見。
        在浮點型常量裏我們也可以加上後綴。
            FloatNumber=1.6E10F;      /*有符號浮點型*/
            LongDoubleNumber=3.45L;   /*長雙精度型*/
        後綴可大寫也可小寫。
        說明: 
          1. 浮點常數只有一種進制(十進制)。 
          2. 所有浮點常數都被默認爲double。 
          3. 絕對值小於1的浮點數, 其小數點前面的零可以省略。如:0.22可寫爲.22, -0.0015E-3可寫爲-.0015E-3。 
          4. Turbo C默認格式輸出浮點數時, 最多隻保留小數點後六位
    (三)、字符型常量        
        字符型常量所表示的值是字符型變量所能包含的值。我們可以用ASCII表達式來表示一個字符型常量,或者用單引號內加反斜槓表示轉義字符。
            &apos;A&apos;, &apos;/x2f&apos;, &apos;/013&apos;;
        其中:/x表示後面的字符是十六進制數,/0表示後面的字符是八進制數。
        注意:在Turbo C 2.0中,字符型常量表示數的範圍是-128到127,除非你把它聲明爲unsigned,這樣就是0到255。
        (四)、字符串常量
        字符串常量就是一串字符,用雙引號括起來表示。
            Hello,World!
            /nEnter selection:
            /aError!!!
        (五)、轉義字符
        上面我們見到的/x,/n,/a等等都是叫轉義字符,它告訴編譯器需要用特殊的方式進行處理。下面給出所有的轉義字符和所對應的意義:
          轉義字符        描述
          /&apos;          單引號
          /          雙引號
          //          反斜槓
          /0          空字符
          /0nnn         八進制數
          /a          聲音符
          /b          退格符
          /f          換頁符
          /n          換行符
          /r          回車符
          /t          水平製表符
          /v          垂直製表符
          /x          十六進制符
        它們的具體用法我們到講輸出語句時再介紹。
        (六)、地址常量
        我們前面說的變量是存儲數據的空間,它們在內存裏都有對應的地址。在C語言裏可以用地址常量來引用這些地址,如下:
            &Counter, &Sum;
        &是取地址符,作用是取出變量(或者函數)的地址。在後面的輸入語句和指針裏還會說明。
        這一節所講到的變量和常量知識可以說是在一切程序中都要用到,特別是變量的聲明和命名規則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章