指標是c和c++中和重要的組成部分,怎麼理解指標呢?首先來看一下記憶體、指標和變數的關係。
記憶體可以比作是很多很多已經編號了的小球,你想用記憶體的時候就要知道小球的編號。比如說int i,這是乙個整型變數,占用4個位元組。如果每乙個小球就是乙個位元組的話,那麼就需要使用四個小球。變數連續的儲存在記憶體中。
程式**進行執行的過程中,比如在執行兩個整型變數i、j相加的時候,首先去尋找 i 的首位址,從該位址開始讀取4個位元組的資料放入cpu中,然後去尋找 j 的首位址,再從 j 首位址開始讀取4個位元組資料存入到cpu中,然後再跳入到加法中斷中進行計算。
記憶體清楚之後,再來看指標。很簡單,位址指向記憶體中的位元組,這個位址就是指標。乙個變數的位址就是這個變數的指標。如果說a變數存放著b變數的位址,那麼a變數就是指標變數,即指標。
首先來看乙個指標:
int *p;
int i = 100;
p = &i;
p是指標變數名,&為取位址符號。p = &i 就是取 i 的位址給指標變數 p 。
對於指標來說,一定要有乙個明確的位址指向。不可以對指標變數 p 進行直接賦值,更不可將*p當作變數來使用。
#includeusing namespace std;
void main()
這是一段錯誤**,原因在於*p被當作變數來使用了。 指標學習 1
注 對於乙個變數來說,最重要的乙個特徵就是資料的寬度。推薦不推薦 char x char x short y short y int z int z float f float f double d double d student st student st 總結 1.帶有 的變數型別的標準寫法 ...
cpp學習 指標 1
1.int x 3 int p x 1 這一段 中int p結合順序為 int p,改為int p 則無法通過編譯。2 此處p代表乙個首位址,而下面的使用中p則代表定位到這個首位址,而int和char之類的之前的型別,則起到了確定該指標指向的變數的具體長度,譬如int為4個位元組,short為兩個位...
c和c指標學習1
初步 了解c程式結構 1用下列指令可以真正注釋掉一段不想使用的 if 0 statements endif2預處理指令 include include include define max cols 20 define max input1000預處理指令由預處理器解釋的並進行修改,修改後的指令遞交...