C語言基礎複習

2021-05-26 22:09:14 字數 2120 閱讀 1509

終於狠下心來深入學習c語言,之前學了一些皮毛,今天就先複習了一下之前學到的東西,順便做個總結。

c語言預處理命令:預處理命令並非c

語言的一部分,但它可以引導

c編譯器做一些額外的工作。巨集定義在習慣上均以大寫表示。

ansi c的預處理命令有下面這些:

#define  巨集定義

例:#define true 1 //

使true和1

具有相同意義。

#define add(a,b) a+b //該巨集返回兩數之和。

#error 使編譯器停止編譯,在除錯時使用

#include  檔案包含指令,常見的標頭檔案包含

#if……

#elif

……#else

……#endif 

條件判斷指令,用法與其他

if……

else

一致。

#ifdef 巨集名……

#endif  

如果定義了指定的巨集,則向下執行

#ifndef 巨集名……

#endif 

如果指定的巨集未定義,則向下執行

#undef 巨集名 取消指定的巨集定義

#line 指定當前行號

#pragma 未理解

二維陣列:c語言支援多維陣列,其中二維陣列是多維陣列中最簡單的一種。

公式:char strs[m][4] = ; 

其中,m

為行數,

4為列數。

為了便於理解,我們可以二維陣列像下面這樣:

乙個m行

n列的**:

"a""b""c"

"d""1"

"2""3"

"4"……(m

) 像這樣的**,我們可以通過橫豎座標來訪為指定的資料。

指標:指標是c

的靈魂,個人認為其概念還是比較容易掌握,但在實際程式設計時,繞來繞去還是稍顯迷糊。

首先,指標是乙個變數,它需要占用記憶體空間,但該變數儲存的並非普通的值,而是乙個位址。

int a=0;

int b=1;

int *pa = &a;

int *pb = &b;

可以看到,我們定義了四個變數,分別是整型的a和b

,以及指向整型變數的指標pa和

pb。變數pa和pb

中分別儲存了乙個值,該值為變數a和

b在記憶體中的位址(

&為取位址運算子)。

假設a10000,b

的位址為

10004

。我們來分別看一下這四個變數的值:

a=0;

b=1;

pa=10000;

pb=10004;

printf("%d",&a); //輸出0

printf("%d",pa); //輸出0

&a與

pa均表示變數

a的位址,因此輸出的都是變數

a的值。那麼,「操作其值指向的記憶體空間的值」是什麼意思呢?

像這樣:b=*pa; //

與b=a;

是等價的(我們用"*"

運算子,獲取指標指向的記憶體位址的值。)

那麼:*pa = 10; //

與a=10

是等價的,我們操作的是其值指向的記憶體的值

再如:pa = 10008; //

此時,pa

儲存的將不再是變數

a的位址,我們手動將

pa的值改變了,這時,我們操作的是指標本身的值。

今天覆習了這些重要的東西,其他比較淺顯的省略了,比較深入的後面再來。

2011/07/24 傍晚 悶熱

C語言基礎複習1

不改變其他位的值的狀況下,對某幾個位進行設值。這個場景微控制器開發中經常使用,方法就是先對需要設定的位用 操作符進行清零操作,然 後用 操作符設值。比如我要改變 gpioa odr 的狀態,可以先對暫存器的值進行 清零操作 gpioa odr 0xff0f 將第 4 7 位清 0 然後再與需要設定的...

C語言 基礎複習 標頭檔案

一 c語言環境 優點 量小 執行速度快 功能強大 程式設計自由 缺點 寫 實現周期長 可移植性較差 過於自由,經驗不足容易出錯 對平台庫依賴多 auto自動的,定義區域性變數 break 跳出迴圈或在switch中結束某結構 case 分支選擇 char 字元型 const 定義常量 continu...

C語言基礎知識複習

整型常量有3種表示方式 十進位制整數。例如,123 456 0。八進位制整數。以0開頭的整數是八進位制數。例如,0123表示8進製數123,等於十進位制數83。十六進製制整數。以0x或0x開頭的整數是十六進製制數。例如,0x123或0xl23表示十六進製制數123,等於十進位制數291。如果在整型常...