2017-10-26
1.int *a:指的是定義乙個指向int型別資料的指標a,即:這是乙個名叫a的指標,這個指標指向的是int型別。
2.scanf("%d",&n);&取位址符,這既是函式要求,也是c語言的原理:通過傳遞變數位址,而達到在子函式中修改變數內容的目的。
3 定義函式:int createsqlist(sqlist *l,int maxsize);
呼叫:createsqlist(&l,maxsize);
& b ,b本身是乙個實體可能是個數字或者結構[理解這點很重要],但是傳參的時候要傳位址,所以用取位址符&;
int createsqlist(sqlist *l,int maxsize); l是乙個實體,此句中的l跟原來的l沒有什麼關係(只是名字一樣,好知道它的**)
解釋:【重點理解】
就是說,l只是乙個名稱,在新定義的函式裡面使用。其實不是第一次出現,只是你把函式頭放在了最前面,所以看起來好像是第一次出現。當程式呼叫createsqlist函式時,會給它傳入乙個指標,這個傳入的指標才是我們要操作的東西
什麼時候使用?
這個傳指標,是相對於傳值來說的。一般的函式沒有辦法對傳入的引數進行真正的修改。他只是利用傳入的引數做一些事。比如說,給cmp函式兩個引數a,b讓他返回乙個真或假從而判斷大小。這個應該很好理解吧,,if(cmp(a,b))。。。。
但是如果我們有這樣的需求,要乙個函式,我給他a和b,讓它給a,b排序,怎麼辦,普通的函式在其內部排好序後,到了main函式裡又變回來了,達不到我們的要求,所以指標就派上用場了。
最後再說一句,int a=10;printf(「%p」,&a);這一句是列印a的位址
&a是取出a的位址(就是a在那裡放著,他的房間號是多少,上面顯示的那個很亂的數就是他的房間號)
c 筆記 指標
using namespace std namespace chap08 void definepoint void defineheap void testpoint void testleak class human human int age 8.4.5 int int getage void...
c 筆記 this指標
this是乙個特殊的指標 1.指向呼叫該成員函式的那個物件。2.是乙個隱含每乙個非靜態成員函式的特殊指標。物件呼叫成員函式 1.編譯器先將物件的位址賦予this指標 2.通過this指標呼叫成員函式 ps 每次適用成員函式時,都隱式的使用了this指標this指標的隱式宣告 1.建立物件時,this...
《C和指標》閱讀筆記 指標
無論是程式設計師還是計算機都無法通過值的位模式來判斷它的型別。型別是通過值得使用方法隱式確定的。編譯器能夠保證值的宣告和值的使用之間的關係時適當的,從而幫助我們確定值的型別。宣告乙個指標變數並不會自動分配任何記憶體。在對指標間接訪問前,指標必須進行初始化 使它指向現有的記憶體,或者它分配動態記憶體。...