利用下標獲取指標的數值

2021-10-25 18:41:54 字數 791 閱讀 5941

(1)當定義乙個指標資料之後 int *p ,通過*p 獲取指標指向的資料。

(2)當指標指向乙個陣列的時候,int *p  ,  int a[3]  ,   p=a ; 因為陣列名就是指向陣列第乙個數值的位址。如下

int main()

; p=a;

printf("a[1] is %d\n",a[1]);

printf("p[1] is %d\n",p[1]);

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

printf("*(a+1) is %d\n",*(a+1));

return 0;

}/*輸出結果

a[1]=1

p[1]=1

*(p+1)=1

*(a+1)=1

*/

實際上系統在編譯時,陣列元素 a[i] 就是按 *(a+i) 處理的。即首先通過陣列名 a 找到陣列的首位址,然後首位址再加上i就是元素 a[i] 的位址,然後通過該位址找到該單元中的內容。

所以 a[i] 寫成 *(a+i) 的形式,程式的執行效率會更高、速度會更快。因為在執行程式的時候陣列是先計算位址,然後轉化成指標。而直接寫成指標 *(a+i) 的形式就省去了這些重複計算位址的步驟。

(3)當指標指向乙個位址的時候,可以通過p[1]這種下標來訪問位址存放的數值。

#includeint main()

/*p[0]=1;

p[1]=3;

*/

利用指標,實現函式值的交換

定義乙個swap函式中,通過傳遞指標實現主函式兩個數的數值交換 如下 include void swap int p,int q void main 注 要想通過指標實現位址傳遞,解引用,不能只是簡單交換兩個指標變數內的位址,必須通過訪問符 訪問到指標所指向的位址,進而進行一系列操作。錯誤示範1 v...

Python的下標如何獲取

下標 又稱為索引,其實在程式裡面對應的就是乙個數字。學習下標的目標 根據下標能夠獲取指定位置的資料,比如 下標可以結合字串,列表,元組使用。下標在python裡面有正數下標和負數下標 my str hello 根據下標獲取字串中的某個資料 result my str 0 print result 列...

陣列中數值和下標相等的元素

假設乙個單調遞增的陣列裡的每個元素都是整數並且是唯一的,請程式設計實現乙個函式,找出陣列中任意乙個數值等於其下標的元素。例如在陣列中,數字3和它的下標相等。從左到右遍歷陣列,逐個判斷數字和下標是否相同,時間複雜度為o n 使用二分查詢,如果數字大於下標在陣列左邊查詢 數字小於下標在陣列右邊查詢。pu...