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 ...