C語言 變數的儲存型別 和 指標(2)

2021-08-21 19:01:06 字數 1296 閱讀 1597

一、變數的儲存型別

1. register int a = 1;   //定義乙個暫存器變數, a存放在暫存器中, 暫存器變數不能取位址

2. extern int a = 1;     //宣告乙個外部變數, 宣告不用分配空間 (定義變數要分配空間)

3. static   (1) 在函式外部 static int a = 1;   // static 修飾全域性變數, 改變變數的作用域, 只能在當前檔案中被呼叫

(函式外部 int a = 1;   // a是全域性變數, 其他檔案也可呼叫)

(2) static void print( );    // static 修飾函式, 改變函式的作用域, 只能在當前檔案中被呼叫

(3) 在函式內部 static int a = 0;   // static 修飾區域性變數, 改變變數生命週期, 直到程式結束才被釋放

例:

#include void add()

int main()

return 0;

}

執行結果為:1   2   3   4   5

若不加static, 執行結果為:1   1   1   1   1

二、指標練習

1.輸入乙個字串,同時輸入幀頭和幀尾(可以是多個字元),將該字串中合法的幀識別出來.

(幀頭和幀尾分別是head和tail  字串」asdheadhauboisoktail」中headhauboisoktail是合法幀)

#include #include #include char *find(char *str, char *head, char *tail)

}for(j = i + len_head; j <= len_str - len_tail; j++)

}if(2 == cmp)

}}int main()

2.使用指標將字串排序 

方法:使用指標陣列,每輸入乙個字串就向作業系統申請乙個空間 ,然後使用strcmp,逐個字串比較,先讓第乙個字串與後面所有的字串比較 ,交換位置,再讓第二個字串與後面所有的字串比較,交換位置......以此類推,直到比較結束。

#include #include #include void sort(char *str, int n)}}

for (i = 0; i < n; i++)

}int main()

sort(str, n);

printf("\n");

return 0;

}

C型別和儲存方式的語言變數

1.在函式中的區域性變數,量在該函式結束後自己主動撤銷 2.函式內的復合語句中的區域性變數 比方for語句 這個變數在復合語句結束後自己主動撤銷。這個變數能夠與1中的變數重名,在復合語句作用域中裡面定義的變數許可權更高,考慮到可讀性不推薦這麼做 比如 include includevoid fun1...

C語言 變數儲存型別

c語言中,變數儲存型別指的是儲存變數的記憶體的型別,主要分為三種 普通記憶體 執行時堆疊 硬體暫存器。變數儲存在那種型別的記憶體中和變數的作用域有很大的關係。首先,分析一下變數的作用域。作用域與宣告的位置有關。在乙個原始檔中,變數宣告的位置有兩種 在 塊內和 塊外。塊指的是被花括號 包圍的一段 1 ...

c語言變數儲存型別

在c語言中變數大致分為四種型別它們分別 1 auto 自動變數 2 register 暫存器變數 3 static 靜態變數 4 extern 外部變數 一般形式 儲存型別說明符 資料型別說明符 變數名,變數名 static int i,j auto char c,d static int a 1 ...