首頁 > 後端開發 > C#.Net教程 > c語言中*p和p的差別是什麼

c語言中*p和p的差別是什麼

青灯夜游
發布: 2022-11-29 18:03:10
原創
47829 人瀏覽過

區別:1、表示的含義不同,「*p」表示此指標指向的記憶體位址中存放的內容,「p」表示一個指標變數的名字,指此指標變數所指向的記憶體位址。 2.輸出的格式不同,「*p」輸出的一般是一個和指標型別一致的變數或常數,「p」輸出的是一個16進制數, 輸出一個指標的位址。 3.功能不同,「*p」是讓程式去那個位址取出數據,「p」用來存放的是位址。

c語言中*p和p的差別是什麼

本教學操作環境:windows7系統、c99版本、Dell G3電腦。

理解C語言中的*pp

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

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

p是指標變量,用來存放地址,你可以認為是上面所說的盒子的號碼,「 * 」是解引用操作符,你可以把它理解成打開盒子,p就是打開p號盒子,取出裡面的資料。

簡單來說,你記住,p存放的是位址,而p是讓程式去那個位址取出資料。

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

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

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

  • 間接運算符,取得指標所指向的記憶體中的值,例如printf("%d",*p);。

C語言中*pp

# #1、表示的含義不同

*p表示此指標指向的記憶體位址中存放的內容。

p表示指標變數的名字,指此指標變數所指向的記憶體位址。

2、輸出的格式不同

*p一般是一個和指標型別一致的變數或常數。

p輸出的是一個16進位數, 輸出一個指標的位址。

3、功能不同

*p是讓程式去那個位址取出資料。

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);

}
登入後複製

輸出結果為:3,3,4;

c語言中*p和p的差別是什麼

解釋:

c語言中*p和p的差別是什麼

擴充知識:*p**p的區別

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的差別是什麼

#相關推薦:《C影片教學

以上是c語言中*p和p的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板