程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言進階總結1

c語言進階總結1

編輯:關於C語言

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那樣,縮進對齊就行)

因此要養好習慣

if

{

if

}

else

這樣才和第一個IF想匹配,因為第二個IF被“封裝”了

9.對數組的操作就是對指針的操作。把數組當作參數代入函數,其實代入的就是指向第一個元素的指針。

main(int argc,char *argv[ ] )

{

}

等價於

main(int argc,char **argv)

{

}

10.數據的邊界問題。避免欄桿錯誤。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved