標籤:
C語言:
1.資料類型
C的資料類型包括:
整型(int)、字元型(char)、浮點型(單(float)、雙精確度(double))、布爾型(bool)、枚舉類型(enum)、數群組類型(arr[])、結構體類型(struct)、指標類型(*p)和空類型。
2.常量與變數
(1) 常量其值不可改變,符號常量名通常用大寫。
(2) 變數是以某標識符為名字,其值是可以改變的量。
(3) 標識符是以字母或底線開頭的一串由字母、數字或底線構成的序列,請注意第一個字元必須為字母或底線,否則為不合法的變數名。變數在編譯時間為其分配相應儲存單元。
3.數組
(1) 如果一個變數名後面跟著一個有數位中括弧,這個聲明就是數組聲明。例如:int arr[5];
(2) 字串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。、
4.結構的聲明
第一種聲明方式:標準,正規的struct person{int age;float height;};第二種聲明方式,相當於匿名的結構一般只用一次struct { int age; float height; }p2;第三種typedef struct Emp{int age;} Employee;第四種typedef struct {int age;} Employee;
5.指標
(1) 如果一個變數聲明時在前面使用 * 號,表明這是個指標型變數。換句話說,該變數儲存一個地址,而 * 則是取內容操作符,意思是取這個記憶體位址裡儲存的內容。
(2)指標不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指標作為形式參數可以在函數的調用過程得到一個以上的傳回值(不同於return(z)這樣的僅能得到一個傳回值。
(3)指標是一把雙刃劍,許多操作可以通過指標自然的表達,但是不正確的或者過分的使用指標又會給程式帶來大量潛在的錯誤。
(4)指標的基本應用:
1)、++,--,+,-
int arr[]={1,2,3}; int *p=arr; int *p2=&arr[1]; p2--; printf("%d\n",*p2);
這裡會輸出1;
2)、作為函數參數
int jiaohuan(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}
3)、作為函數傳回值
char* GetMemory() { char *p = new char[100]; return p; }
4)、void*
void的字面意思是“無類型”,void *則為“無類型指標”,void *可以指向任何類型的資料。但這並不意味著,void *也可以無需強制類型轉換地賦給其它類型的指標。因為“無類型”可以包容“有類型”,而“有類型”則不能包容“無類型”。呵呵,這個道理蠻簡單,我們可以說“男人和女人都是人”,但不能說“人是男人”或者“人是女人”。
5)、指標數組:int *p[3];
首先它是一個數組,數組的元素都是指標,數組佔多少個位元組由數組本身決定。它是“儲存指標的數組”的簡稱
#include <stdio.h>//用指標數組輸出字串int main(){ char *p[5]={"qwe","asd","rtt","fgh","vbc"}; int i; for (i = 0; i < 5; i++) { printf("%s\n",p[i]); }}
6)、指標的指標:類型符**變數名(例如:**p)
int a=5; int *p; int **pp;//*pp是指向int*類型資料的指標 p=&a; pp=&p;//將p的地址賦給pp **pp=a;
7)、函數指標
int (*f) (int x); /* 聲明一個函數指標 */
#include <stdio.h>int add(int a,int b){ return a+b;}int main(){ int a=3; int b=3; int (*p)(int,int); p=add; int result=(*p)(a,b); printf("%d\n",result );}
8)、指標的作用:
指標可以用來有效地表示複雜的資料結構,可以用於函數參數傳遞並達到更加靈活使用函數的目的.使C語言的設計具有靈活、實用、高效的特點。指標不僅僅是C語言的靈魂,運用得好更是事半功倍,讓你寫出的程式更簡潔!
6.常用調試命令(lldb)
| file |
檔案名稱 |
| b(breakpoint) |
斷點 |
| br list |
所有的斷點 |
| br del |
刪除斷點 |
| l |
顯示代碼 |
| n:next |
下一個 |
| s:sept |
單步運行 |
| continue |
繼續 |
| finish |
結束 |
| print |
列印某一變數的值 |
| frame variable |
幀變數 |
| diplay |
每次運行到斷點就顯示變數的值,用於觀察變數的變化 |
| expr |
改變函數的值 |
| q |
退出運行 |
7.動態記憶體
(1) malloc
(2)calloc
(3)realloc
(4)free
ios興趣班(二)