變量
變量定義的一般形式:
類型名稱 變量名稱;
數組
一維數組:
數據類型 數組名稱[長度];
二維數組:
數據類型 數組名稱[行標][列標];
指針
聲明指針
數據類型 *p變量名稱;
初始化指針
數據類型 *p變量名稱 = NULL;
初始化指針,使指針不知向任何對象
指針數組
數據類型 *變量名稱[長度] = { NULL };
char *pString =NULL;
聲明一個char類型的指針變量:
指針只是一個存儲另一個內存位置的地址的變量
char *pS[10] ={NULL};
創建一個指針數組,存儲字符串的位置
此語句聲明瞭一個數組,包含10個char*類型的元素,pS中的每個元素都可以存儲字符串的地址
函數
函數的返回值類型 函數名稱(參數)
數據類型 函數名稱(數據類型 變量名稱)
函數的一般形式:
Return_type Function_name( parameters )
{
//Statements
}
調用函數的一般形式
Function_name(list of Arguments)
函數指針
函數返回值的類型 指針的名稱(數據類型)
例子:
int (*pfunction)(int)
函數指針變量的聲明,該語句只定義了指針變量
指針的名稱是pfunction,指向一個參數int類型、返回值是int類型的函數
- 什麼是指針的名稱?
- 什麼是函數指針變量?
- 指針變量?
- 什麼是函數指針?
函數指針的數組
函數指針和一般的變量是一樣的,所以可創建函數指針的數組,要聲明函數指針的數組,只需要在將數組的大小放在函數指針數組名之後,
int (*pfunctions[10])(int)
這條語句聲明瞭一個包含10個元素的指針數組,
這個數組的每一個元素都能存儲一個函數的地址
函數指針作爲變元?
變元個數可變的函數?
結構體
結構體類型的定義:
struct 結構體名
{
結構體成員;
}
結構體成員可以是變量、數組、指針等數據類型
- 先定義結構體,後定義結構體變量
- 定義結構體的同時,定義結構體變量
- 只定義結構體變量
結構體類型的引用
結構體變量名稱.成員變量名稱
結構體變量的初始化
如何進行初始化
不能再結構體的內部進行初始化
結構體數組
- 先定義結構體,後定義結構體數組
- 定義結構體的同時定義結構體數組
結構體數組的引用
- 結構體數組定義以後,通過下標即可引用相應的結構體元素
結構體數組的初始化
- 初始化數組所有的元素
- 結構體數組可以在定義時就賦予初值即初始化
- 初始化數組的部分元素
結構體指針的定義形式:
struct 結構體類型 *指針名
結構體數組指針
結構體類型 *變量名 = NULL;
Horse *phorse =NULL;
- 這條語句聲明瞭一個horse指針,它可以存儲Horse類型的結構地址
- 結構指針的聲明方式和聲明其它類型的指針變量相同。
結構體變量可以作爲函數的參數
傳值調用
結構體地址可以作爲函數的參數
傳址調用
結構體數組可以作爲函數的參數
共用體
共用體的定義形式
union 共用體名稱
{
成員表;//必須是英文下的分號
}
- 共用體變量的值爲最後一次賦的值
- 共用體變量在定義時不能賦值
- 不能對共用體變量整體進行賦值
- 定義共用體數組
枚舉類型
枚舉類型的定義形式:
enum 枚舉類型名(枚舉元素表)
用戶自定義類型
爲已有的類型重新定義
typedef 類型名 標識名