今天主要學了指針的以下部分:
1.位址與指針的差別:
位址:是一個位址,制定從哪裡開始,但不知何時結束
指針(指針變量):指針是一個變量,包含一個位址,是以指針固定位占4個位元組(32位機),
指針要初始化,如 int *p = #,int *p,标示了一個位址,表明何時開始,何時結束,因為 int占4個位元組。
2.&僅僅是一個位址,* p 是一個變量。
3.指針的初始化:
int num = 100;
int *p ;
p = #//這樣是正确的;
p = num;//這樣編譯沒有錯誤,把num的值當作了一個位址,但在運作時會出現錯誤,因為位址可 //能被其他程式使用(windows 有程式保護機制,其他程式不能通路其他程式的記憶體)
*p = num;// 一開始以為是正确的,但實際上是錯誤的,編譯成功,不能運作,提示 p沒有初始 //化,是以隻能是 p = #
int p = NULL;//空指針,就是0,不指向任何位址
4.直接通路和間接通路:
直接通路:按照位址去存取變量
間接通路:通過存放變量位址的變量來存放變量
5.列印指針:
%x:按照十六進制列印,多餘的0去掉
%p:按照位址的格式列印,顯示出位址的位數
int *p = NULL;
··6點多了,才學了一個小時··,明天繼續,感覺真的有效果!!!