指針變量的分析原則:從變量名起,根據運算符優先級結合,一步一步分析。(從p開始後要把小括號去掉)
指針,指向什麼(X),X是什麼類型的
Int *p; //首先從P處開始,先與*結合,說明P是一個指針,然後再與int結合,說明指針所指向的內容的類型為int型,所以P是一個返回整形數據的指針
Int *p[3]; //首先從P處開始,先與[]結合所以P是一個數組,然後再與*結合,說明數組裡的元素是指針類型,然後再與Int結合,說明指針所指向的內容類型是整形的,所以,P是一個由返回整形數據的指針所組成的數組;
Int (*p)[3]; //首先從P處開始,先與*結合,說明P是一個指針,然後再與[]結合,說明指針指向的內容是一個數組,然後再與int結合,說明數組裡的元素是整形的,所以P是一個指向整形數據組成的數組的指針;
Int p(int); //首先從P處開始,先與()結合,說明P是一個函數,然後進入()裡分析,說明函數裡有一個整形變量的參數,然後再與外面的的int結合,說明函數返回值是一個整形數據;
Int (*p)(int); //首先從P處開始,先與指針結合,說明P是一個指針,然後與()結合,說明指針指向一個函數,然後再與()裡的int結合,說明函數有一個int型的參數,再與最外層的int結合,說明函數的返回值類型為int,所以P是一個指 向有一個整形參數且返回類型為整形的函數的指針。
指針是一個特殊的變量,它裡面存儲的數字被解釋成為內存裡的一個地址。要搞清楚一個指針需要搞清指針四個方面的內容:指針本身所占的內存區、指針的值或者叫指針所指向的內存區、指針的類型、指針所指向的類型。