序
希望您能把指標看似天上最燦爛的星星(*)
網盤下載:微盤檔案格式:Xmind 製作軟體:Xmind Pro 指標的內涵
指標變數用於儲存變數地址。由於我們使用*作用於指標變數,所以作者喜歡把指標當成星星。 作者把指標比喻成鑰匙(信箱的鑰匙),而把變數值當成信件。
數組的內涵 數組名稱表示數組第一個元素的地址。 由於陣列變數儲存第一個元素的地址,所以陣列變數也是一個指標變數。但是不同的是,不能對陣列變數進行自增(++)或自減(--)運算,所以我們管陣列變數叫做
指標常量。 指標操作符 我們可以使用[]或*取指標指向變數裡的值。 指標(*)和數組([])是互連的。 字串常用操作> 字串長度:strlen(str1); 字串複製:strcpy(str1接收者, str2給予者) strncpy(str1接收者, str2給予者, n複製個數) 字串串連:strcat(dest被串連者, source串連者) strncat(dest, source,n) 字串比較:strcmp(str1, str2) str1 == str2 地址比較,用於判斷str1和str2是否指向同一個變數。 結構體 通過指標訪問成員使用->或(*).
結構體是派生的資料類型。結構體是由相同或不同資料類型組成的集合體。
常用代碼 定義結構體
typedef struct _student{ char name[10]; int score;} student;
分配記憶體
student *ptr = (student *) malloc ( sizeof(student) );
檔案操作
int main(){ char id[10]; FILE *fptr; if((fptr = fopen("test.dat", "a+")) == NULL){ printf("無法開啟test.dat"); return 1; } do{ printf("請輸入id\n"); scanf("%s", id); fprintf(fptr, "%s\n", id); }while(strcmp(id, "-1") != 0); fclose(fptr); return 0;}
書中錯誤
1、書中第一篇第4節(11頁)是這樣描述結構體的(見)。——實際上結構體是相同或不同資料類型組成的。
2、(12頁)是不是我理解上的錯誤,從這句話我誤認為結構體成員在記憶體中是相鄰的。——但實際上不是。
3、53頁(命令列自變數篇),這個明顯表示不同的意思,怎麼就歸納到一起了?
推薦