溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言中*p和p的區(qū)別有哪些

發(fā)布時間:2022-11-30 09:44:16 來源:億速云 閱讀:373 作者:iii 欄目:編程語言

這篇文章主要講解了“c語言中*p和p的區(qū)別有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“c語言中*p和p的區(qū)別有哪些”吧!

區(qū)別:1、表示的含義不同,“*p”表示此指針指向的內(nèi)存地址中存放的內(nèi)容,“p”表示一個指針變量的名字,指此指針變量所指向的內(nèi)存地址。2、輸出的格式不同,“*p”輸出的一般是一個和指針類型一致的變量或者常量,“p”輸出的是一個16進制數(shù), 輸出一個指針的地址。3、功能不同,“*p”是讓程序去那個地址取出數(shù)據(jù),“p”用于存放的是地址。

理解C語言中的*p、p

C語言中,*p 和p都常用在指針當中表示一個指針變量。

想要利用指針,需先理解地址和數(shù)據(jù):你可以想象有很多盒子,每個盒子有對應的號碼,那個號碼叫做“地址”,而盒子里放的東西叫做“數(shù)據(jù)”。

p是指針變量,用來存放地址,你可以認為是上面所說的盒子的號碼,“ * ”是解引用操作符,你可以把它理解成打開盒子,p就是打開p號盒子,取出里面的數(shù)據(jù)。

簡單來說,你記住,p存放的是地址,而p是讓程序去那個地址取出數(shù)據(jù)。

在C 語言中*號有三個用途,分別是:

  • 乘號,用做乘法運算,例如5*6。

  • 申明一個指針,在定義指針變量時使用,例如int *p;。

  • 間接運算符,取得指針所指向的內(nèi)存中的值,例如printf("%d",*p);。

C語言中*pp的區(qū)別

1、表示的含義不同

*p表示此指針指向的內(nèi)存地址中存放的內(nèi)容。

p表示一個指針變量的名字,指此指針變量所指向的內(nèi)存地址。

2、輸出的格式不同

*p一般是一個和指針類型一致的變量或者常量。

p輸出的是一個16進制數(shù), 輸出一個指針的地址。

3、功能不同

*p是讓程序去那個地址取出數(shù)據(jù)。

p存放的是地址。

例子:

#include <stdio.h>

int main(void){ 

int x=3;

int *p,*q;

p=&x,q=&x;

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

printf("%d\n",(*q)++);

printf("%d\n",x);

}

輸出結(jié)果為:3,3,4;

c語言中*p和p的區(qū)別有哪些

解釋:

c語言中*p和p的區(qū)別有哪些

擴展知識:*p**p的區(qū)別

int *p :一級指針,表示p所指向的地址里面存放的是一個int類型的值

int **p :二級指針,表示p所指向的地址里面存放的是一個指向int類型的指針(即p指向的地址里面存放的是一個指向int的一級指針)

例如:

int i=10; //定義了一個整型變量
int *p=&i; //定義了一個指針指向這個變量
int **p1=&p; //定義了一個二級指針指向p指針

那么取出10的值方式為:

printf("i=[%d]\n",*p);
printf("i=[%d]\n",**p1);

c語言中*p和p的區(qū)別有哪些

感謝各位的閱讀,以上就是“c語言中*p和p的區(qū)別有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對c語言中*p和p的區(qū)別有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI