C語言(二 運算子、條件語句、指標)
阿新 • • 發佈:2018-11-12
C運算子
包括算數運算子,邏輯運算子,關係運算符,位運算子,賦值運算子,其他運算子。
算術運算子
就是加減乘除求餘,自增自減等算術。
邏輯運算子
與:&&,或:||,非:!
關係運算符
等於,大於,小於等組合
位運算子
位與:&,位或:|,位左移<<,位右移>>,異或:^,取反:~。
賦值運算子
+=,-=,=等算術運算子的組合
其他運算子
&:變數地址符,?: :條件運算子,:指標,sizeof():變數佔記憶體大小
條件語句
if,if…else,switch,?: (三元運算子)
迴圈語句
for,while,do…while
函式
首先要有函式宣告,要告訴編譯器函式返回值型別,引數型別。
呼叫函式時,有兩種傳參方式,傳值呼叫和引用呼叫,前者是直接把值賦給形式引數,在函式內改變形參的值不改變實際變數的值,後者形參是指向實參地址的指標,改變形參就會改變相應的實參。
C作用域
在函式或塊內宣告的變數是區域性變數,函式外訪問不到。
在函式外宣告的變數為全域性變數,任何地方都能訪問到。
形式引數在函式內充當區域性變數,在函式內區域性變數會覆蓋同名的全域性變數。
陣列
記憶體中地址連續的型別相同的資料的集合
例int stars[ ] ={2,5,7,6,3,4}
starts是指向陣列第一個元素地址的指標,*stars為2 *(stars+1)為5,
Enum列舉
enum Day{
Mon,Tue,Wes,Thu,Fri,Sat,Sun
}day;
day = Mon; //day值為0,
列舉變數值依次加一,若沒有定義初始變數的值,那麼它就是0。
指標
指標其實也是一個變數,儲存的是變數在記憶體中的地址,例如int *p 表示定義p為指向int型別的指標,在沒有地址可以賦給它時,最好把它設為NULL。
int var =20; int *p =&var; printf("Address of var variable: %p\n", &var ); /* 在指標變數中儲存的地址 */ printf("Address stored in ip variable: %p\n", p ); // 結果為bffd8b3c /* 使用指標訪問值 */ printf("Value of *ip variable: %d\n", *p ); //結果為20
指標的運算
1、自增自減
int *p ++;
若p指向記憶體位置1000,執行完以上語句就會變為1004,整數四個位元組。若p為指向字元型別的指標,執行上面語句會變為1001。
2、比較大小
比較的是地址的前後,後面的大於前面的
3、迴圈陣列
利用自增自減迴圈去除陣列的值
C語言允許指標指向指標,定義需要兩個星號 int **p = NULL;
當然,指標也可以用作函式引數和返回型別。
函式指標
指標變數是用來儲存變數地址的變數,函式指標是指向函式的指標變數。
函式指標可以用作回撥函式
void int get(int a,int b) ;
int *p (int ,int ) = &get;
p(1,5); //呼叫get函式