C語言入門(1)


C語言入門(1)

程序的基本概念

即用計算機語言描述的解決某一問題的一系列加工步驟,是符合一定語法規則的符號序列。

程序設計就是借助計算機語言,告訴計算機要處理什么(處理數據)以及如何處理。

程序設計語言

  • 機器語言

    指計算機能夠識別的指令集合,每條指令都用二進制0和1組成的序列來表示。

    計算機可以直接執行,且執行效率高。

  • 匯編語言

    采用的一些助記符號來表示機器語言的機器指令,助記符號一般采用代表某種操作的英文單詞的縮寫。

    用匯編語言編寫的程序稱為源程序,計算機不能直接執行,必須通過匯編程序翻譯成機器語言才能執行。

  • 高級語言

    面向算法過程的語言,接近自然語言的形式,一條語句相當與多條匯編語言指令或機器語言指令。

    不能直接執行高級語言源程序,必須經過編譯和連接過程,將其翻譯成機器語言程序才能由計算機執行。

  • 面向任務的程序設計語言

    非過程化語言,無須知道問題如何求解,只需要描述求解什么問題,便可編程實現。

    數據庫便是一種面向任務的程序設計語言。這類語言被廣泛應用在管理信息系統應用軟件的開發方面。

  • 面向對象的程序設計語言

​ 具有類的定義功能,對象的生成功能,消息傳遞機制和類的繼承機制。

​ 如:Java

什么是編程語言

通過有固定格式和固定詞匯的“語言”來控制他人,讓他人為我們做事情。也可以通過”語言“來控制計算機,讓計算機為我們做事情,這樣的語言就叫做編程語言(Programming Language)。

舉例來說:作為班長的小明需要讓小紅做一件事,但前提要給小紅(用語言)傳達一個任務的信息(指令),而這個語言必須是小紅能聽懂的,如果說的是方言或者其它語種,自然小紅會一臉懵,如果都是用普通話交流(固定的格式和詞匯)那么就能讓小紅明白小明的意思,小紅也就能成功的完成這件事情了(運行完成)。

編程語言是用來控制計算機的一系列指令(Instruction),它有固定的格式和詞匯(不同編程語言的格式和詞匯不一樣),必須遵守才能實現我們的目的。

編寫源代碼的過程就叫做編程(Program)。從事編程工作的人叫程序員(Programmer)。

什么是C語言

C 語言是一種通用的、面向過程式的計算機程序設計語言。1972 年,為了移植與開發 UNIX 操作系統,丹尼斯·里奇在貝爾電話實驗室設計開發了 C 語言。

C 語言是一種廣泛使用的計算機語言,它與 Java 編程語言一樣普及,二者在現代軟件程序員之間都得到廣泛使用。

C語言的特點

(1)是一種結構化語言

C語言的主要成分是函數。函數是C語言程序的基本結構模塊。

(2)語言簡潔緊湊,使用方便靈活

一共有32個保留字和9種控制語句,程序書寫自由。

(3)易於移植

C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬件,且針對不同的硬件環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味着,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。

(4)強大的處理能力

引入了結構、指針、地址、位操作、寄存器等功能,在許多方面具有匯編語言的特點,從而提高了語言的處理能力。

(5)可生成高質量、目標代碼執行效率高的程序

與其他高級語言相比,C語言可以生成高質量和高效率的目標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。

C語言的基本結構

  • 頭文件包含(一組#include命令)

  • 用戶自定義函數聲明

  • 主函數main()

  • 若干用戶自定義函數的定義

備注:

  • 所有的 C 語言程序都需要包含 main() 函數。 代碼從 main() 函數開始執行。
  • /* ... */ 用於注釋說明。
  • printf() 用於格式化輸出到屏幕。printf() 函數在 "stdio.h" 頭文件中聲明。
  • stdio.h 是一個頭文件 (標准輸入輸出頭文件) , #include 是一個預處理命令,用來引入頭文件。 當編譯器遇到 printf() 函數時,如果沒有找到 stdio.h 頭文件,會發生編譯錯誤。
  • return 0; 語句用於表示退出程序。

3種基本控制結構

  • 順序結構

  • 分支結構/選擇結構

  • 循環結構

C語言字符集、標識符與關鍵字

  • 字符集

1) 字母
小寫字母a~z共26個,大寫字母A~Z共26個。

2) 數字
0~9共10個數字。

3) 空白符
空格符、制表符(Tab鍵)、換行符等統稱為空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出現時,只起間隔作用,編譯程序對它們忽略不計。

因此在程序中使用空白符與否,對程序的編譯不發生影響,但在程序中適當的地方使用空白符將增加程序的清晰性和可讀性。

4) 標點和特殊字符
如加號 + 減號 - 分號 ; 逗號 , 等。

  • 標識符

由字母(A~Z, az)、數字(09)和下划線(_)組成,並且首字符必須是字母或下划線。

合法標識符:
a, x, x3, BOOK_1, sum5

非法標識符:

3s 不能以數字開頭

sT 出現非法字符

-3x 不能以減號(-)開頭

bowy-1 出現非法字符減號(-)

注意:

①不同編譯系統對標識符長度都有自己的規定。

②在標識符中,大小寫是有區別的,例如A1 和 a1 是兩個不同的標識符。

  • 關鍵字

關鍵字指具有特殊含義的標識符,不能用作變量名、常量名或函數名來使用,只能根據系統的規定使用。

auto聲明自動變量

short聲明短整型變量或函數

int聲明整型變量或函數

long聲明長整型變量或函數

float聲明浮點型變量或函數

double聲明雙精度變量或函數

char聲明字符型變量或函數

struct聲明結構體變量或函數

union聲明共用數據類型

enum聲明枚舉類型

typedef用以給數據類型取別名

const聲明只讀變量

unsigned聲明無符號類型變量或函數

signed聲明有符號類型變量或函數

extern聲明變量是在其他文件正聲明

register聲明寄存器變量

static聲明靜態變量

volatile說明變量在程序執行中可被隱含地改變

void聲明函數無返回值或無參數,聲明無類型指針if條件語句else條件語句否定分支(與 if 連用)

switch用於開關語句

case開關語句分支

for一種循環語句

do循環語句的循環體

while循環語句的循環條件

goto無條件跳轉語句

continue結束當前循環,開始下一輪循環

break跳出當前循環

default開關語句中的“其他”分支

sizeof計算數據類型長度

return子程序返回語句(可以帶參數,也可不帶參數)循環條件

C99 新增關鍵字
_Bool _Complex _Imaginary inline restrict

C11 新增關鍵字
_Alignas _Alignof _Atomic _Generic _Noreturn
_Static_assert _Thread_local

C語言的主要語法單位

常量:在程序運行過程中,其值不能被改變的量

  • 直接常量(字面量) 可以立即拿來用,無需任何說明的量,例如:
    整型常量:12、0、-3;
    實型常量:4.6、-1.23;
    字符常量:‘a’、‘b’。
  • 符號常量 用標識符代表一個常量。在C語言中,可以用一個標識符來表示一個常量,稱之為符號常量。

說明:符號常量在使用之前必須先定義,其一般形式為:
#define 標識符 常量

習慣上符號常量的標識符用大寫字母,變量標識符用小寫字母,以示區別。

變量:其值可以改變的量稱為變量

  • 允許在一個類型說明符后,定義多個相同類型的變量。各變量名之間用逗號間隔。類型說明符與變量名之間至少用一個空格間隔。
  • 最后一個變量名之后必須以“;”號結尾。
  • 變量定義必須放在變量使用之前。一般放在函數體的開頭部分。

在變量定義中賦初值的一般形式為:
類型說明符 變量1= 值1, 變量2= 值2, ……;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM