一、變數的儲存型別
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 ...