天天看點

指針總結(一)

    今天主要學了指針的以下部分:

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點多了,才學了一個小時··,明天繼續,感覺真的有效果!!!      

繼續閱讀