- 程序設計基礎教程:C語言
- 常東超 劉培勝 郭來德等編著
- 1326字
- 2020-05-07 11:49:30
3.1 C語句概述
一個C語言程序由若干個源程序文件組成,一個源程序文件由預處理命令、全局變量聲明部分以及若干個函數組成,一個函數是由變量聲明部分和各種C語言的語句組成的。概括起來C語言的語句可以分為5類,分別是表達式語句、控制語句、函數調用語句、復合語句和空語句。如圖3.1所示。

圖3.1 C語言程序結構
(1)表達式語句
C語言是一種表達式語言,所有的操作運算都通過表達式來完成;由表達式組成的語句稱為表達式語句。
表達式語句的一般形式為:
表達式;
最典型的表達式語句是由一個賦值表達式加一個分號構成的賦值語句。應注意:分號是C語言的語句中不可缺少的一部分,因此“a=10”和“a=10;”是不同的,前者是一個賦值表達式,而后者才是一個賦值語句。使用賦值語句要注意以下幾個方面:
①賦值號“=”左邊必須是變量,不能是常量或變量表達式。賦值號“=”右邊可以是變量、常量或各種合法的表達式。
例如:
a=c+3;
x=y=z+2;
m=i>j;
p=&a;
*q=a+b;
x=*q+5;
都是合法的賦值語句。
②變量賦初值與賦值語句的區別。
例如:int x=5,y=5,m,n;不能寫成int x=y=5,m,n;
但int x=5,y=5,m,n; m=n=6;卻是合法的。
也就是說在定義變量時,不允許連續給多個變量賦初值。而賦值語句是允許連續給多個變量賦值。
(2)控制語句
控制語句用于完成一定的功能。C語言有9種控制語句,它們是:
①if()…else… (條件語句)
②for()… (循環語句)
③while()… (循環語句)
④do…while() (循環語句)
⑤continue (結束本次循環語句)
⑥break (中止執行switch或循環語句)
⑦switch (多分支選擇語句)
⑧goto (轉向語句)
⑨return (從函數返回語句)
上面9種語句表示形式中的括號“()”表示括號中是一個條件,“…”表示內嵌語句。例如:
if(x>y) z=x;
else z=y;
這個語句的作用是:先判斷條件“x>y”是否成立,如果成立則執行語句“z=x;”,否則執行“z=y;”。
(3)函數調用語句
由一個函數調用加一個分號構成一個語句,其完成特定的任務。其一般形式為:
函數名(實際參數表);
例如:
printf("I am a student!!!");
該函數調用語句的作用是:在屏幕上顯示“I am a student!!!”。
(4)復合語句
復合語句由花括號“{ }”括起來的兩條或兩條以上的語句組成。一個復合語句在功能上相當于一條語句。復合語句也可稱為“塊語句”,復合語句的一般形式為:
{ 語句1;語句2;…;語句n;}
例如:
{ int a=3,b; /*定義部分*/
a++; /*執行語句*/
b*=a; /*執行語句*/
printf("b=%d\n",b);} /*執行語句*/
在復合語句內,不僅可以有執行語句,還可以有定義部分,定義部分應該出現在可執行語句的前面,且所定義的變量是局部變量,且只能在復合語句內部有效。
【例3.1】 復合語句應用舉例。
#include<stdio.h>
void main()
{ char a='A',b='B';
{char a='C',b='D';
printf("%c,%c\n",a,b);
}
printf("%c,%c\n",a,b);
}
程序運行結果:
C,D
A,B
(5)空語句
C語言中的所有語句都必須由一個分號“;”作為結束。如果只有一個分號,例如:
main()
{ ; }
這個分號也是一條語句,稱為“空語句”。
空語句的一般形式為:
;
在程序中空語句常用來做空循環體,可起到延時作用。由于空語句是什么也不執行的語句,因此在順序結構程序中空語句不會影響到程序的執行結果,但空語句有時會影響分支結構程序和循環結構程序的執行結果,這一點讀者一定要謹慎,不要在程序中隨意寫分號。
- 測試驅動開發:入門、實戰與進階
- 自己動手實現Lua:虛擬機、編譯器和標準庫
- Building a Game with Unity and Blender
- 體驗設計原理:行為、情感和細節
- 青少年美育趣味課堂:XMind思維導圖制作
- Android 9 Development Cookbook(Third Edition)
- jQuery從入門到精通 (軟件開發視頻大講堂)
- Python算法詳解
- 數據分析與挖掘算法:Python實戰
- Mastering SciPy
- R的極客理想:量化投資篇
- 企業級Java現代化:寫給開發者的云原生簡明指南
- INSTANT LESS CSS Preprocessor How-to
- INSTANT EaselJS Starter
- 基于Docker的Redis入門與實戰