指標的指標位址運用

2021-07-05 11:07:33 字數 504 閱讀 7615

以下**輸出什麼__.

1 2

3 4

5 6

main()

; int p=(int )(&a+1);

printf(「%d」,*(p-1));

} 正確答案: c

1 2

5 出現錯誤

選擇c,&a表示乙個指向大小為5陣列的指標,那麼&a+1就是表示乙個指向大小為5的下乙個陣列的指標,也就是陣列a最後乙個元素的下乙個位置,那麼int*p=(int*)(&a+1)進行強制型別轉換,將指向陣列的指標轉換為指向第二個陣列中首元素的指標,所以p-1則是指向第乙個陣列中最後乙個元素的指標,所以輸出是5

或者:

陣列名a可以作為陣列的首位址,而&a是陣列的指標。int p=(int )(&a+1);//這條語句中&a代表整個陣列的位址,+1應加上sizeof(a)的長度,故指標p指向a[5]處。printf(「%d」,(*p-1));//(*p-1) == a[4],語句輸出a[4]的值,為5,答案 c

指標與指標位址

int urn size urn 0 100 urn 1 200 urn 2 300 urn 3 400 urn 4 500 int ptr1,ptr2,ptr3 ptr1 urn ptr2 urn 2 printf 當前指標的值和位址 printf ptr1 p,ptr1 d,ptr1 p n p...

高階指標的運用

首先來複習一下指標與陣列 陣列 存放相同型別資料的集合 和陣列類似的還有結構體,結構體是存放不同型別資料的集合 需要注意的是 雖然指標和陣列在這裡被拿來一起比較,但它們是兩種型別,沒有關係。只是有相同或相似的特性。看一下下面的 及其執行結果 printf d n strlen p 報錯,型別不同 s...

C 指標運用

前提 計算機裡,記憶體調取變數,需要知道變數的實體地址,相當於現實生活中的地標,當鎖定地標之後,程序從記憶體呼叫變數時才能做到精確無誤。而我們指標就提供了地標值,哲學上通俗的說,在一定時間內地標值精確的代表了一棟房子,我們可以說當我們說起地標值,就相當於說起了房子,當我們說起了房子,也就是地標值。指...