C語言指標與位址的問題,C語言指標與位址的問題

時間 2021-08-30 09:42:40

1樓:匿名使用者

只有當定義指標時才可以這樣寫:int *pointer=p;

這條語句和 int *pointer; pointer = p; 兩條語句等價

printf func(* pointer) 是把pointer所指向的值(變數)做函式引數

printf func(pointer) 是把pointer的本身所儲存的值, 即所指向的變數的位址做函式引數

前者是變數,後者是變數的位址;

關鍵是把int *pointer=p; 理解清楚。

2樓:匿名使用者

int *pointer=p;這句指的是定義乙個整形指標變數pointer,pointer的值等於p

int l=a;這句不對,應該是int *l=a;指標不能賦值給整形變數。

改過之後,程式輸出結果應該是指標*pointer和指標pointer

3樓:匿名使用者

首先*p不是變數,p才是變數。*p是取p所指向的位址上的內容。

printf func(*pointer )的值是p所指向的位址上的值,即*p的值。而func (pointer)不能輸出,因為pointer存放的是乙個位址。記住*p是指p所指向的位址的內容。

如:p指向2000這個位址單元,裡面存放了資料a,則*p=a.

4樓:

pointer當中儲存的是p的位址。最後的的函式裡只能是fun(pointer)而不能使*pointer,因為引數裡表裡的int *a中只有a是引數,而*a不是引數。

5樓:c和dsp高手

1、整個「*p」 可以看做是乙個變數,其中p存放的是這個變數的位址

2、p當中已經儲存的是位址,那麼pointer當中儲存的是p這個位址值本身

3、printf func(*pointer ) 返回的是 *pointer,也就是pointer所指向的位址中儲存的資料 而 func (pointer)返回的是 pointer這個值本身

6樓:尚a難

函式呼叫要符合函式引數的規則

*pointer為指標pointer所指向的變數

7樓:匿名使用者

int *pointer=p; // pointer當中儲存的和p當中儲存的是一樣的玩意

func (int *a)

printf func(*pointer ) //這個呼叫不成立 func函式要求引數是個指標

c語言關於指標變數位址問題

8樓:老猴子不會胖

p是乙個指標變數,它的值是陣列a的首位址

p的位址是&p

但是p+1是乙個值,這個值的位址怎麼可能列印出來呢? 他雖然有容器存放,但是這個容器的名字不是p+1;

可以先 p++; 再列印p

只有有名字的指標才能列印它的位址

printf("%p",&5);不可能列印出來,常量不是按變數的方式存放在記憶體中的

9樓:gta小雞

&操作符只能取左值的位址,p+1不是乙個左值。應該寫成&p+1。

關於c語言的指標問題(指標的位址+1問題) 10

10樓:小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);

11樓:

輸出的四行**分別是:

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語言,指標問題

指標的概念 指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的 型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。讓我們分別說明。先宣告幾個指標放著做例子 例一 1 int ptr 2 char...

關於c語言的指標問題指標的位址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 ...