指針的用途非常廣泛,比如如果你想通過函數改變一個變量的值,就得用指針而不能用值傳遞。還有在很多時候變量,特別是對象的數據量實在太大,程序員就會用指針來做形參,只需要傳遞一個地址就行,大大提高了效率。簡單地說指針就是指向變量和對象的地址。
初學者唯一會用到指針的地方就是通過函數修改變量具體的值
void swap(int a, int b)
{//將變量a,b交換int i = 0;i = a;a = b;b = i;}
int main()
{int a = 1, b = 2;swap(a, b);
}
這樣是無法按照意圖交換參數a,b的值,函數需要這樣改
void swap(int *a, int *b)
{//將變量a,b交換int i = 0;i = *a;*a = *b;*b = i;}int main()
{int a = 1, b = 2;swap(&a, &b);//swap(a,b)也能通過?為什么 }
因為傳入的實參a,b 初始化給了臨時變量(形參)a,b,
在編譯器中執行了a(a),b(b),這個兩個變量名稱一樣但是作用域不一樣,不是一個變量。
參考文獻:
3.學習數據結構還需了解結構體(struct):https://blog.csdn.net/weixin_43115440/article/details/93486050
和c語言的內存管理(malloc):https://blog.csdn.net/wxb1553725576/article/details/42714947
4.通過簡單的數據結構融會貫通學過的知識(看得懂這個c語言的基礎應該不錯了):https://blog.csdn.net/endeavor_g/article/details/80552680
1.初學者看ppt:https://pan.baidu.com/s/1wgi9lOqOBOnY6ega-Zj-Nw 密碼:urdt
2.了解指針細節看如下《c++primer》章節