C語言小板凳(1)

strlen()函數作用:計算字符串的長度,當遇到“\n”字符時結束,即遇到數值“0”時結束計算,有一點特別要注意當這個函數用來計算數組的長度的時候遇到數值0他就停止計算了!

register關鍵字修飾的變量不可以使用“&”取地址符來獲取地址,因爲它可能不在內存。

     問:“static”關鍵字修飾的變量能被改變不?

答:肯定可以,它在編譯的時候放在靜態區,生長期是在整個程序的運行的週期。

關鍵字“const”修飾的變量的屬性是隻讀,注意它是變量,其值在編譯期間是不能被使用的,因此,在定義數組的時候千萬不要傻叉一樣拿const變量來指定數組的個數,這樣是編譯不過的

“const”關鍵字修飾指針變量時跟位置有關,且看下面的例子
const int *p; 和 int const *p; //兩個一樣*p只讀,p可變
int * const p; //*p可變,p不可變
const * const p; //兩個都不可變

歸納爲一句話就是:忽略類型名,“近水樓臺先得月”!哈哈,好好意會意會^_^

說到類型名,有一點不得不說,typedef出來的是“新的”類型名,記得喔,遇到const時也要會變。
volatile可防止代碼被編譯器自做多情地優化,看一個例子
int i=10;
int j=i; //執行完這一句,編譯器並沒有把賦給j的值丟掉
int k=i; //繼續使用上面沒有丟掉的值,不會產生彙編代碼去重新加載i的值

看,要是期間有誰改變了i值不就出事了!

寫一個測試代碼來判斷當前系統的存儲方式是大端(高地址存低字節)還是小端
...
union test_mod
{
int i;
char ch;
}c;
c.i=1;
return (c.ch); //如果返回的是1,說明是小端模式
enum枚舉類型:枚舉常量在編譯時確定其值,從有賦值處開始依次加1,如果沒有賦值則從0開始加
#include <stdio.h>
void main()
{
char len=0;
enum ColorVal
{
BLUE=1,
YELLOW,
RED,
ORANGE,
GREEN
} MyColor;
len = sizeof(MyColor);
printf("\n  yellow = %d\n",YELLOW);
printf("  sizeof(MyColor) = %d\n\n",len);
}
結果:

原因:枚舉變量是int型的,上面定義的MyColor就是一個枚舉變量,而枚舉變量一個時刻只能取一個值,這個值就是從枚舉的“區間”裏邊取出來的,所以說,接下來不用說都明白啦
有一點要注意的是枚舉變量裏面的成員是可以單獨拿出來使用的,成員是常量哦,而且記住不能MyColor.BLUE類似於結構體那樣的操作

好好學C,一步兩步,一步兩步!微笑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章