當前位置:首頁 » 編程語言 » c語言中p是什麼

c語言中p是什麼

發布時間: 2023-06-27 09:25:31

『壹』 c語言中 !p 是什麼意思

意思:使當前指針指向鏈表的下一個結點。

一般作用在數據結構中的單鏈表裡由應用,語句中的p一般指向一個結構體類型的數據,此類型的數據通常表示節點;結構體里存放的一些數據和記錄下一個節點地址的指針變數next;這個next就好比鏈條一樣,連接著一個個節點。

->是一個整體,它是用於指向結構體、C++中的class等含有子數據的指針用來取子數據。換種說法,如果在C語言中定義了一個結構體,然後申明一個指針指向這個結構體,那麼要用指針取出結構體中的數據,就要用到「->」.

(1)c語言中p是什麼擴展閱讀:

舉個例子:

struct Data

{

int a,b,c;

}; /*定義結構體*/

struct Data * p;/*定義結構體指針*/

struct Data A = {1,2,3};/*聲明變數A*/

int x;/*聲明一個變數x*/

p = &A ; /*讓p指向A*/

x = p->a;/*這句話的意思就是取出p所指向的結構體中包含的數據項a賦值給x*/

/*由於此時p指向A,因而 p->a == A.a,也就是1*/

對於一開始的問題p=p->next;這應該出現在C語言的鏈表,這里的next應該是一個與p同類型的結構體指針,其定義格式應該是:

struct Data

{

int a;

struct Data * next;

};/*定義結構體*/

main()

{

struct Data * p;/*聲明指針變數p*/

p = p->next;/*將next中的值賦給p*/

}

『貳』 c語言 p什麼意思

p是一個指針,printf("%d",*p++) 和printf("%d",*(p)++)沒區別,都是輸出比p指針所指向的數的地址大1的地址的數,若改為(*p)++則不一樣了,就成了輸出比p指針所指向的數大1的數。

『叄』 C語言中,p,&p,*p有什麼關系

假設我們定義一個指針p。
那麼會經常使用到三個符號:
1,p;
2,*p;
3,&p;
初學者經常會感到很迷茫,到底這三個符號表示什麼?
我們知道,p是一個指針變數的名字,表示此指針變數指向的內存地址,如果使用%p來輸出的話,它將是一個16進制數。而*p表示此指針指向的內存地址中存放的內容,一般是一個和指針類型一致的變數或者常量。
而我們知道,&是取地址運算符,&p就是取指針p的地址。等會,怎麼又來了個地址,它到底和p有什麼區別?
區別在於,指針p同時也是個變數,既然是變數,編譯器肯定要為其分配內存地址,就像程序中定義了一個int型的變數i,編譯器要為其分配一塊內存空間一樣。而&p就表示編譯器為變數p分配的內存地址,而因為p是一個指針變數,這種特殊的身份註定了它要指向另外一個內存地址,程序員按照程序的需要讓它指向一個內存地址,這個它指向的內存地址就用p表示。而且,p指向的地址中的內容就用*p表示。
我來舉個例子說明這三個符號到底表示什麼。
假設有一個樓盤的銷售員,當然,現在時髦的叫法是「銷售代表」之類的,我們用字母x表示他。他負責銷售一個樓盤中的某套房子,此房子有一個地址為A,而他本身也需要有地方住,他居住的房子的地址為B。而這個幸運的銷售員很快的賣掉了這套房子給C。現在公司要求對銷售的房子必須包產到戶,也就是說,現在必須提到x的時候能夠管理到C。
如果用程序表示上述內容的話就可以使用指針。首先定義一個指針p,讓他指向地址A,地址A中住的是C,而x本來居住的地方的地址是B。OK,現在能知道p,*p,&p表示什麼了嗎?沒錯,p表示此指針指向的地址,就是A,而*p表示此地址中居住的人,就是C,而&p表示這個銷售員居住的地址,就是B。

『肆』 c語言中%p是什麼意思

格式控制符「%p」中的p是pointer(指針)的縮寫。指針的值是語言實現(編譯程序)相關的,但幾乎所有實現中,指針的值都是一個表示地址空間中某個存儲器單元的整數。printf函數族中對於%p一般以十六進制整數方式輸出指針的值,附加前綴0x。

%p是列印地址的, %x是以十六進制形式列印, 完全不同!另外在64位下結果會不一樣, 所以列印指針老老實實用%p 。

(4)c語言中p是什麼擴展閱讀:

%x同樣輸出16進制形式,不過%x對應的是int型,也就是說,其輸出長度與系統int型占的位元組數相等回。如32位編譯器,int型佔4位位元組,那麼%x輸出的結果最多為16個16進制字元。

而%p輸出寬度取決於系統地址匯流排位數,即16位最多輸出4位16進制字元,32位最多輸出8位16進制字元,64位最多輸出16位16進制字元。

『伍』 C語言,int *p=G 中的p是指什麼

c語言中
int *p=G;
這句話的作用是:
①聲明一個指向整型數據的指針變數p(簡稱「指針p」);
②並把變數G的地址賦值給p(這個賦值的過程在更多的時候被稱為「讓指針p指向整型變數G」。
回答你的問題:
(1)p是一個特殊的變數;
(2)p中只能存放地址(又叫指針);
(3)p中只能存放整型變數的地址(也叫整型指針);
(4)所以,p是一個整型指針變數(或整型變數指針);
(5)p的值是變數G的地址,即p==G;
(6)我們可以用下面的運算得到與p相關的其他量值:
&p--得到變數p的地址;
p--得到變數G的地址;
*p--得到變數G的值,*p==G。

『陸』 C語言中*p和**p有何區別

一、表示的東西不同

*p表示p代表相應數據類型在存儲單元中存儲的首地址,而這個存儲單元存儲的是相應類型數據的數值。

**p表示p也表示地址,簡單的說,這個地址對應的存儲單元存儲的數也是一個地址,而不是數值,而這個被存儲的地址對應的存儲單元存儲的數據才是真正的相應類型的數值。

二、基類型不同

例如int *p1,**p2;

兩者本質上都是指針,但是兩者的基類型不同。p1的基類型是int,換句話說p1指針指向的是int型的數據,而p2的基類型是int *換句話說p2指向的是指向int型數據的指針,即指向指針的指針。

三、用法不同

例如int *p;

那麼p就是指向int類型變數的一個指針。(即數組)

如果int**p;

那麼p就是指向int*類型指針的一個指針。(即指向一維數組的指針,即二維數組)

『柒』 C語言 *p 和p的區別

C語言中,*p 和p都常用在指針當中表示一個指針變數,*p 和p的區別:

1、表示的含義不同

*p表示此指針指向的內存地址中存放的內容。

p表示一個指針變數的名字,指此指針變數所指向的內存地址。

2、輸出的格式不同

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

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

3、功能不同

*p是讓程序去那個地址取出數據。

p存放的是地址。

例子:

1、int a[5]={1,2,3,4,5};

int *p=a;//這是在定義指針變數p的同時就直接給它初始化,即把數組a的首地址賦給它。

2、int a[5]={1,2,3,4,5};

int *p;//聲明指針變數p

p = a;

(7)c語言中p是什麼擴展閱讀

(*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。

『捌』 c語言的指針部分 *p與p區別

c語言的指針部分 *p與p區別如下:

1、作用不同

*p表示此指針指向的內存地址中存放的內容。

p是一個指針變數的名字,表示此指針變數指向的內存地址。

2、輸出內容的格式不同

*p常用在一個和指針類型一致的變數或者常量。

p輸出一個指針的地址,通常是輸出一個16進制的數。

3、效果不同

*p是讓編譯器從指定的地址中讀取出數據。

p是用來存放要讀取數據的地址。

(8)c語言中p是什麼擴展閱讀

C語言中使用指針的作用:

1、指針使程序的不同部分能夠共享數據

類似於共享內存,如果將某一個數據值的地址從一個函數傳遞到另外一個函數,這兩個函數就能使用同一數據。

2、利用指針,能在程序執行過程中預留新的內存空間

大多數情況下,可以看到程序使用的內存是通過顯式聲明分配給變數的內存。但是在很多應用場合中,可能程序運行時不清楚到底需要多少內存,使用指針可以讓程序在運行時獲得新的內存空間,並讓指針指向這一內存更為方便。

3、指針可以用來記錄數據項之間的關系

在高級程序設計應用中,指針被廣泛應用於構造單個數據值之間的聯系。比如,程序員通常在第一個數據的內部表示中包含指向下一個數據項的指針(實際上就是鏈表了),來說明這兩個數據項之間有概念上的順序關系。

熱點內容
引用jar怎麼發布到伺服器 發布:2025-02-12 01:07:44 瀏覽:333
舊電腦開伺服器 發布:2025-02-12 01:02:50 瀏覽:277
電腦伺服器兩個電源什麼意思 發布:2025-02-12 00:55:15 瀏覽:220
linux外網不能訪問埠 發布:2025-02-12 00:55:13 瀏覽:438
安卓系統哪裡可以看充電次數 發布:2025-02-12 00:53:53 瀏覽:723
如何選物理伺服器cpu 發布:2025-02-12 00:48:22 瀏覽:68
怎麼買編程 發布:2025-02-12 00:31:42 瀏覽:932
固態硬碟如何做緩存檔 發布:2025-02-12 00:19:48 瀏覽:519
cm13源碼下載 發布:2025-02-12 00:13:58 瀏覽:554
lang編譯器 發布:2025-02-12 00:13:56 瀏覽:561