c語言高階總結1

2021-12-29 23:50:05 字數 1470 閱讀 1133

1.善於運用符號常量。

把數字埋在程式中沒有任何好處,一方面不能給以後看你程式的人提供什麼資訊,一方面修改起來也很麻煩。

可以用define來定義符號常量。

#define 你想用的名稱 實際的數字或者字串行 /*符號常量一般大寫,與小寫的變數相區分*/

如:#define max 100

注1:define定義的符號變數是沒有型別的,編譯不進行安全檢測,容易出問題,因此也有人說用const 可以完全代替define,

而且更好。

如:const int max = 100

注2:define只是替換。

如:#define a 3+5

const int a = 3+5

一式中 3 * a 就等價於 3 * 3 + 5 = 14

二式中 3 * a 就等價於 3 * 8 = 24

注3:const關鍵字不是真正表示常量,若將上式的a代入switch語句中,

case a:

也會出現錯誤

如果你要深入追究他倆的區別

2.getchar()函式返回的是int型別的資料。

int c;

c=getchar();

3.當心編譯器由於貪心法進行錯誤編譯

比如:將x除以p指標所指向的值,之後結果賦值給y

得: y=x/*p;

但是編譯器會將/* 當成注釋的開始,將x直接賦值給y

正確做法應該是y=x/(*p)

4.用單引號引起來的相當於乙個數字,用雙引號引起來的末尾還有 '\0'

5.float *g() 指g()函式返回浮點型別的指標

float (*g)() 為指向返回的浮點型別的函式指標

6.多個運算子要按計算順序打括號,避免考慮不到符號優先順序方面的問題產生錯誤的運算。

7.小心if、for、while後的分號位置,注意switch中,case後的break和最後的default。

若故意不加break語句,可以寫個注釋標明。

8.c語言中else總與最近的if想匹配

if if

else

這樣的結構最後也會自動變成

if if

else

(不像python那樣,縮排對齊就行)

因此要養好習慣

ifif

else

這樣才和第乙個if想匹配,因為第二個if被「封裝」了

9.對陣列的操作就是對指標的操作。把陣列當作引數代入函式,其實代入的就是指向第乙個元素的指標。

main(int argc,char *ar**[ ] )

等價於main(int argc,char **ar**)

10.資料的邊界問題。避免欄杆錯誤。

C語言高階指標 1

c語言的指標是c語言這門語言的精華所在,當然也是讓很多人詬病的地方。指標是什麼?有這麼一句話 對於錘子來說,一切都是釘子。那麼換句話講指標,即 對於指標來說,一切都是位址 記憶體是由乙個個記憶體單元構成的,每個記憶體單元都有自己的位址。而指標就是用來存放這些位址的。凡是可以用指標來儲存的變數,在指標...

C語言高階 指標的高階 1

目錄 指標定義 指標變數,用於存放位址。位址唯一對應一塊記憶體空間。指標大小 固定32位平台下佔4個位元組,64位8個位元組。指標型別 型別決定指標整數的步長及指標解引用時訪問的大小。指標運算 指標解引用,指標整數,指標 指標,指標關係運算。本章節在此基礎上,對c語言階段指標進行更深層次的研究。字元...

C語言總結 1

1.識別符號 識別符號由字母數字構成,必須由字母開頭 下劃線 算作字母,但不要用下劃線作為識別符號的首字母,因為庫中通常用下劃線作為識別符號首字母,你如果這樣用容易引起衝突 識別符號是區分大小寫的,int a和int a代表不同的變數 關鍵字不能用作識別符號 c語言區分內部名和外部名,內部名僅出現於...