一題直觀理解指標

2021-09-28 21:01:56 字數 846 閱讀 5903

牛客上一題關於指標的題,覺得對理解指標很有幫助:

#include

int main(void),*p; int (pp)[5];

p=x;

pp=&x;

printf ("%d\n",(p++));

printf ("%d\n",*pp);}

分解解析:

int x[5] = :

為申請五個空間存陣列的資料2,4,6,8,105個資料對應的位址假設是ad(2),ad(4),ad(6)…為指標變數x申請空間ad(x)把指標x指向ad(2),即變數x存了2的位址,或者說位址為ad(x)的空間中存了ad(2)。

int (*pp)[5] :

為陣列申請5個空間以便後續存資料,位址假設為ad[?0],ad[?1], ad[?2],ad[?3], ad[?4], 這五個空間以後要存的資料型別為指標型,由於還沒有賦值,裡面存的還是系統以前使用過程中遺留的數字,對於這個程式來說就是隨機的值。為指標變數pp申請空間​指標pp指向ad[?0]

pp=&x;

​把變數pp的值改為x變數的位址,即ad[?0]變為ad(x)

printf("%d\n",*(p++)):

先列印p所指位址中存放的資料,即ad(2)中存放的資料2把p的值+1,由於資料在存資料時,資料的存放是連續的位址,所以p存的變成了ad(2)後面乙個值的位址,即ad(4)

printf("%d\n",*pp);​

列印pp變數所存位址中存放的資料,即x中存的東西,即ad(2)

做指標的題,個人覺得技巧是把申請位址和存放變數作為兩個動作來思考,經常容易忽略的是乙個題中看似就幾個變數,其實記憶體中開闢了很多位址。由於指標本身是存位址的,所以理清楚位址資訊是必要的。

如何直觀理解AUC評價指標?

最近一直在思考如何直觀理解auc,查了維基百科的以及網上的講解描述,感覺仍然很難把這個概念表述得通俗易懂,直到昨天周會後拿筆在紙上畫了畫,感覺似乎找到了一種比較有意思的理解方法,下面就請各位看官容我慢慢道來。首先簡單介紹一下什麼是auc。根據維基百科的描述,auc area under the cu...

LeetCode每日一題 盛水容器 雙指標

給你 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。如圖 1.暴力法 首先還是用簡單...

JS每日一題 Vue中mixin怎麼理解?

20190122 vue中mixin怎麼理解?mixin是為了讓可復用的功能靈活的混入到當前元件中,混合的物件可以包含任意元件選項 生命週期,指令之類等等 mixin翻譯過來叫混合,高階的詞彙可以叫外掛程式入侵簡單使用 定義乙個混合物件 const mymixin methods 定義乙個使用混合物...