區別:1、表示的含義不同,「*p」表示此指標指向的記憶體地址中存放的內容,「p」表示一個指標變數的名字,指此指標變數所指向的記憶體地址。2、輸出的格式不同,「*p」輸出的一般是一個和指標型別一致的變數或者常數,「p」輸出的是一個16進位制數, 輸出一個指標的地址。3、功能不同,「*p」是讓程式去那個地址取出資料,「p」用於存放的是地址。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境:windows7系統、c99版本、Dell G3電腦。
*p
、p
C語言中,*p 和p都常用在指標當中表示一個指標變數。
想要利用指標,需先理解地址和資料:你可以想象有很多盒子,每個盒子有對應的號碼,那個號碼叫做「地址」,而盒子裡放的東西叫做「資料」。
p是指標變數,用來存放地址,你可以認為是上面所說的盒子的號碼,「 * 」是解除參照操作符,你可以把它理解成開啟盒子,p就是開啟p號盒子,取出裡面的資料。
簡單來說,你記住,p存放的是地址,而p是讓程式去那個地址取出資料。
在C 語言中*號有三個用途,分別是:
乘號,用做乘法運算,例如5*6。
申明一個指標,在定義指標變數時使用,例如int *p;。
間接運運算元,取得指標所指向的記憶體中的值,例如printf("%d",*p);。
*p
和p
的區別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;
解釋:
*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視訊教學》
以上就是c語言中*p和p的區別是什麼的詳細內容,更多請關注TW511.COM其它相關文章!