官术网_书友最值得收藏!

1.5.2 C/C++程序的基本構成

1.標識符

標識符用來給程序中的常量、變量、函數、文件指針和數據類型等命名。如例 1.3 中的area和r就是標識符,這種標識符稱為(用戶)自定義標識符。其構成規則如下:

① 由字母、數字、下畫線組成;且第1個字符不能是數字,必須是字母或下畫線。

② 標識符中的大、小寫字母的含義不同,即temp,Temp和TEMP是3個不同的標識符。通常變量用小寫字母,符號常量用大寫字母。

③ ANSI C和標準C++的標識符的有效長度是1~31個字符,Visual C++標識符的有效長度為1~247個字符,而Turbo C 2.0編譯系統只能識別前8個字符。

④ 用戶自定義標識符時,應當盡量遵循“見名知意”和“簡潔明了”的原則,且不能與關鍵字相同。

2.關鍵字

例1.3中的float和int是另一種標識符,在C語言中稱為關鍵字或保留標識符。它是C語言中已預先定義,且具有特定含義的標識符。ANSI C標準共有32個關鍵字,如表1.1所示。所有關鍵字都用小寫英文字母表示,且這些關鍵字不允許用作用戶標識符。

還有一種標識符,如預編譯處理命令(如define)、庫函數的名字(如printf)等稱為預定義標識符。用戶如果把這些標識符另作它用,這些標識符就將失去預先定義的原意。因此,在使用時要加以注意。

表1.1 關鍵字

3.運算符

例1.3中的=、*、&是C語言中的運算符。

運算符是用來表示某種運算的符號,其中有的由一個字符組成,例如 +、-、*、/ 等;有的由多個字符組成,例如<=、<<、&&、!= 等。C語言的運算符主要有以下幾類:

① 算術運算符 (+ - * / %)

② 關系運算符 (> < == >= <= !=)

③ 邏輯運算符 (! && || )

④ 位運算符 (<< >> ~ | ^ &)

⑤ 賦值運算符 (= 及其擴展賦值運算符)

⑥ 條件運算符 (? :)

⑦ 逗號運算符 (,)

⑧ 指針運算符 (* 和 &)

⑨ 求字節數運算符 (sizeof)

⑩ 強制類型轉換運算符 ((類型))

?分量運算符 (. ->)

?下標運算符 ([ ])

有些運算符具有雙重含義,例如“%”可以作為求余運算符;但是,當它出現在輸入、輸出函數中時,就是“格式控制符”了。

上述運算符的應用將在第2 章中介紹。C++除了具有上述運算符以外,還具有更加豐富的其他運算符,這里不作介紹,讀者可參考C++的書籍。

4.常量和變量

常量是指在程序運行過程中不會改變的量。常量分為整型常量、實型常量和字符型常量。例如5,-34是整型常量,2.3,-15.0是實型常量,' a ' 為字符常量。

變量是指在程序運行過程中其值可以改變的量。例如源程序1-3.C中的area和r。每個變量都有名字和類型,系統根據變量的類型為其分配相應的內存單元。例如,Turbo C 2.0系統為整型(int型)變量分配2個字節的內存單元,為實型(float型)變量分配4個字節的內存單元,為字符型(char型)的變量分配1個字節的內存單元。內存單元中存放的是變量的值。程序執行過程中對數據的讀、寫是通過變量名找到與其對應的內存單元來實現的。

提示

C語言規定:所有變量都必須“先定義(說明變量的名字和數據類型),后使用”。任何一個未經定義就使用的變量都會被C語言的編譯程序認為是非法變量,引起如下編譯錯:

Undefined symbol 'xxxxxx'

5.函數

例1.3程序中的printf()和scanf()是C語言的庫函數中為用戶提供的輸出函數和輸入函數。C語言中的函數分為:系統提供的庫函數和用戶自定義函數。對于庫函數,用戶可以直接調用;用戶自定義函數是用戶用以解決專門問題所定義的函數(參見第6章)。

【例1.4】 從鍵盤上輸入兩個整數,求其中的較大數。

源程序1-4.C

1  #include<stdio.h>
2  void main()
3  {
4   int x,y,z;
5   printf("輸入兩個整數:");     /* 提示輸入 */
6   scanf("%d%d",&x,&y);       /* 輸入兩個整數 */
7   z=max(x,y);               /* 調用求較大數函數max()*/
8   printf("max=%d",z);         /* 輸出較大數 */
9  }
10  int max(int x,int y)           /* 自定義求較大數函數max()*/
11  {
12   return(x>y?x:y);           /* 返回較大數 */
13  }

程序運行實例如下:

輸入兩個整數:34 89↙
max=89

上面程序由兩個函數組成:main()和max()。其中max()是自定義函數,用于求兩個數中的較大數。通過main()函數調用max()函數,由max()函數返回較大數。程序從main()函數開始執行,執行到第7行函數調用處,轉去第10行執行被調用函數max();max()函數執行完后,再返回到主函數的第7行,將較大數賦給變量z,繼續執行函數調用后面的語句行。

主站蜘蛛池模板: 长沙县| 高邮市| 盐城市| 永登县| 自贡市| 莎车县| 金昌市| 汽车| 绥德县| 噶尔县| 浪卡子县| 墨竹工卡县| 磐安县| 任丘市| 雷州市| 蒙山县| 罗源县| 凤山市| 晴隆县| 洪湖市| 怀来县| 玛纳斯县| 攀枝花市| 宁津县| 应用必备| 离岛区| 延津县| 五指山市| 中宁县| 萨嘎县| 双鸭山市| 凤冈县| 伊金霍洛旗| 望谟县| 荃湾区| 堆龙德庆县| 彭水| 宁国市| 桑植县| 赞皇县| 玉屏|