變量 指針 引用
變量
普通變量表示一個內存空間,直接printf是內存空間里的值
結構體
定義一個結構體類型變量為什么必須用指針?
因此無法確定結構體需要多少空間,改用指針可以解決這個問題,因為指針的大小是固定的
指針
指針≠指針變量
指針變量的內存空間存的是一個別的內存空間的地址(指針),
如果指針變量定義時不初始化,變量所指的內存里是NULL
偏偏教材喜歡用結構體指針作為參數
引用
引用指的是原變量,對引用操作就是對原變量操作。
要知道函數傳參時,即使傳遞指針變量,也不是原變量
指針的引用*&
為了在main調用函數時,一直用一個指針變量,否則,比如在CreateList()創建順序表函數中malloc一個指針,這個指針存入函數本身的指針變量L,而main中的指針變量list仍為NULL。
void CreateList(SqlList * L){L=(SqlList*)malloc(sizeof(SqlList));
}
int main() {SqlList *list;CreateList(list);return 0;
}
參考文獻
1、結構體里面定義一個該結構體類型變量為什么必須用指針?
2、指針變量、普通變量、內存和地址的全面對比
3、C語言結構體指針必須被結構體變量賦地址或malloc后才能正常使用,不能單獨賦值?