1樓:匿名使用者
**p是取得指標p所在的地址的值,而&p是取指標p所在的地址
c++的指標變數中,*p與p有什麼區別?
2樓:匿名使用者
#include
void main()
程式輸出屬結果:
*p=5
p=0x0012ff7c
press any key to continue
3樓:匿名使用者
p指向的是地址,*是解除操作符,加在p前面是為了獲取儲存在這個地址的值
4樓:匿名使用者
int p = 10; // p 為一個整形變數
int *pn = &p; // *pn為一個指向p的指標.
5樓:匿名使用者
*p 值得是該指標指向的變數的值p指的是該指標指向的變數的記憶體地址
c語言的指標部分*p與p的區別是什麼?
6樓:夏日絕
p是指標變數,其值是一個變數的地址。p收到了哪個變數的地址,就指向哪個變數。該變數成為p的物件。
*p是p所指向的物件的值。
例如:int i=3,*p;
p=&i; 注意:p收到i的地址,故p指向i,i是p的物件。
printf("%d,%d\n",i,*p); 輸出:3,3 注意:*p是p所指向的物件的值,即i的值。
c語言c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
7樓:酒天縱尤晟
賦值的時候*p表示這是一個指標,p表示是一個數
而用的時候如果p是一個指標,那麼*p表示所指向的內容,p本身存著一個地址。
8樓:莘赩蔚日
intpp=5;
//開闢4位元組記憶體給pp,其中存放的是5的二進位制值;
int*p=&pp;
//開闢4位元組記憶體給p,其中存放的是pp的地址值(只有定義成int*型別的才能存放地址值);
9樓:墨澄邈馮曼
舉個例子:
inta[5]=;
int*p;
p=&a[2];
++*p;//等同於++a[2],使p指向的值加1++p;//等同於p=a[2+1],使p指向目標陣列中的下一個元素a[3]
c語言 *p 和p的區別?
10樓:楓璽
c語言中,*p 和p都常用在指標當中表示一個指標變數,*p 和p的區別:
1、表示的含義不同
*p表示此指標指向的記憶體地址中存放的內容。
p表示一個指標變數的名字,指此指標變數所指向的記憶體地址。
2、輸出的格式不同
*p一般是一個和指標型別一致的變數或者常量。
p輸出的是一個16進位制數, 輸出一個指標的地址。
3、功能不同
*p是讓程式去那個地址取出資料。
p存放的是地址。
例子:1、int a[5]=;
int *p=a;//這是在定義指標變數p的同時就直接給它初始化,即把陣列a的首地址賦給它。
2、int a[5]=;
int *p;//宣告指標變數p
p = a;
擴充套件資料
(*p)操作是這樣一種運算,返回p 的值作為地址的那個空間的取值。(&p)則是這樣一種運算,返回當時宣告p 時開闢的地址。可以用賦值語句對記憶體地址賦值。
例:int *p;
p=2003h;
*p=3000h
結果:**p=*(*(p))=*(*(2003h))=*(3000h)=3000h。
&&p=&(&(p))=&(3001h),此時出錯了,3001h 是個常數無法存放地址。
*&p=*(&(p))=*(3001h)=2003h,也就是*&p=p。
11樓:ieio啊
兩者之間的區別如下:
1、表示的意義不同。
p是一個指標變數的名字,表示此指標變數指向的記憶體地址,而*p表示此指標指向的記憶體地址中存放的內容。
2、數量形式不同。
p如果使用%p來輸出的話,它將是一個16進位制數。*p一般是一個和指標型別一致的變數或者常量。
3、定義不同。
p存放的是地址,而*p是讓程式去那個地址取出資料。
例子:#include
void main()
輸出結果為:3,3,4;
解釋:*p++:是先取出*p的值,再使p加1
//p是個指標,給p加1,相當於讓p指向了x所在地址的下一個位置,而對於x則是沒有任何影響
(*p)++:是使*p的值加1.
//*p則是p指向的位置對應的值,題目中是*q,所以此時的*q就是x的值,為3,當輸出*q之後,再給*q即x自加1,綜上所述,x就會變為4
12樓:匿名使用者
先要理解地址和資料,你可以想象有很多盒子,每個盒子有對應的號碼,那個號碼叫做「地址」,而盒子裡放的東西叫做「資料」。
上面就段理解了,*p和p的區別就不難解釋了。
p是指標變數,用來存放地址,你可以認為是上面所說的盒子的號碼,「*」是解引用操作符,你可以把它理解成開啟盒子,*p就是開啟p號盒子,取出裡面的資料。
簡單來說,你記住,p存放的是地址,而*p是讓程式去那個地址取出資料。
13樓:雲南新華電腦學校
一、表示的東西不同
*p表示p代表相應資料型別在儲存
單元中儲存的首地址,而這個儲存單元儲存的是相應型別資料的數值。
**p表示p也表示地址,簡單的說,這個地址對應的儲存單元儲存的數也是一個地址,而不是數值,而這個被儲存的地址對應的儲存單元儲存的資料才是真正的相應型別的數值。
14樓:匿名使用者
借用一樓的回答,列印的時候,你可以參照下述列印,可能你就明白了。
int x = 3;
int *p, *q;
p = &x, q = &x;
printf("p=%p,p=%d\n", p, *p);
printf("%d\n", *p++);
printf("p=%p,p=%d\n", p, *p);
printf("-----\n");
printf("%d\n", (*q)++);
printf("%d\n", x);
你列印的結果應該是:
p=某地址,p=3
q=**=某地址+4/8(根據系統位數是4或者8),p=隨機值-----
q=3q=4
15樓:匿名使用者
char *p其實也可寫成char* p
char*表示指向char型別的指標
這時p就是指標,*p是指向的char變數
祝學習進步!
等你熟練使用指標的時候,一切都是指標,連陣列和函式,都變成了指標。之所以使用指標是因為,很多情況下,編譯和執行內部,都採用轉化成指標的方式,所以使用指標可以優化程式
指標的使用沒有要求,也沒有限制,隨個人對指標掌握的程度。
常見的如,對字串的操作,傳值呼叫,陣列,函式,等等。
16樓:匿名使用者
在你家裡有一部**p,你要給中國銀行打**怎麼辦?你就使用**的記憶功能找出中國銀行的**號碼p,這個號碼是指向中國銀行的。我們就能通過這個**號碼訪問中國銀行*p(*p表示中國銀行提供的功能)
號碼儲存在p中,*p是通過**號碼訪問到中國銀行這個值
還有一點。你家**總有一個地方擺放吧,也就是說你加**p也是有一個地址的這個地址就是」你家"也就是&p
17樓:匿名使用者
void ergod(void (*doit)(int))}void printa(int a)
void printb(int a)
int main()
這是一個函式指標的應用
執行時根據你傳的不同的函式指標而執行的不同的操作列印出b:0
b:1b:2
b:3b:4
b:5b:6
b:7b:8b:9
18樓:民大幽靈
第一個:p為帶回一個指標的函式,該指標指向double型資料,第二個:p是指向函式的指標,該函式返回double型值
19樓:傲世修羅王
這種只有你慢慢去理解,時間長了就懂了,別指望一下就懂了
20樓:惡魔王子
p是指一個變數,它代表一個數值,*p則代表一個地址
C語言p和p的區別c語言的指標部分p與p的區別是什麼?
c語言中,p 和p都常用在指標當中表示一個指標變數,p 和p的區別 1 表示的含義不同 p表示此指標指向的記憶體地址中存放的內容。p表示一個指標變數的名字,指此指標變數所指向的記憶體地址。2 輸出的格式不同 p一般是一個和指標型別一致的變數或者常量。p輸出的是一個16進位制數,輸出一個指標的地址。3...
餘額寶和p2p理財有什麼區別,p2p理財有哪些技巧
你好,餘額寶和p2p網貸理財平臺的區別 餘額寶作為一款貨幣型理財產品,是穩健型投資理財的重要選擇,從收益來說買餘額寶等同於存銀行。p2p則是在p2p平臺上實現借款人和出借人的資訊撮合,然後直接達成借貸協議。從獲取收益的角度看,銀行存貸和p2p借貸本質上是一樣的,都是採用資金出借的方式獲得收益,只是p...
P檔和N檔有什麼區別p檔和N檔有什麼區別啊
p檔和n的區別有 型別不同 作用不同 離合器控制不同 1 型別不同 p檔稱為駐車檔,n檔稱為空擋。2 作用不同 p檔適合停車和駐車,n擋是在短時間停車的時候使用。3 離合器控制不同 p檔時,駐車齒輪在變速箱內被部分鎖死,所以此時平地上不踩剎車,車輛有一定的駐車效果。n檔就是空檔,發動機與傳動軸在變速...