1樓:小p精神
我來給你寫個例子,你參考一下
int *p, *q,*s;
int a[3] = ;
p = a; //將a的首位址賦值給p 那麼p指向的值應該是a[0]的值2
printf("a[0] = %d; *p = %d \n", a[0], *p);
q = &a[0] + 1; //將a[0]的位址向右偏移一位就等於a[1]的位址 a[1] = 8那麼*q應該等於8
s = q + 1; //將q指標向右偏移一位,相當於把a[1]的位址向右偏移一位,即a[2]的位址指向的值是25
//列印驗證一下
printf("a[0] = %d; *q = %d ;a[1] = %d *s = %d\n", a[0], *q,a[1],*s);
2樓:
輸出的四行**分別是:
a的值,
a的位址+1的位址值(並非a的位址,因為你的p值已經+1了),*p表示的是p指向位址的內容值;
*q表示a的位址+17位址上內容的值.
a的位址+1的值,是指向下乙個位址,偏移量為a的型別長度
C語言指標位址輸出問題,關於C語言指標位址輸出問題
能夠輸出位址值!include main 這個程式就可以 注意變數名,前後要一致,不要用大寫!請將 p改為 p 將最後一行改為 printf x b 你會看得更真切!x 按十六進製制輸出 你把 與 兩個的功能搞錯了 乙個是取位址 乙個是指向 但不取。注意變數名區分大小寫,菜鳥。我沒看出來有什麼不對的...
C語言指標與位址的問題,C語言指標與位址的問題
只有當定義指標時才可以這樣寫 int pointer p 這條語句和 int pointer pointer p 兩條語句等價 printf func pointer 是把pointer所指向的值 變數 做函式引數 printf func pointer 是把pointer的本身所儲存的值,即所指向...
關於c語言指標的問題,乙個關於c語言指標的問題
二維陣列相當於乙個一維陣列裡面的元素都是一維陣列 二維陣列名也相當於乙個二級指標。一維陣列 a a 0 二維陣列 a a 0 a 0 0 通俗點寫就是a a 0 a 0 a 0 0 因為 a 0 a 0 0 所以a於 a指向同乙個位址 a 0 0 則 a a 0 0 include int main...