pa在C語言中的意思,c語言中pa是啥子意思

2021-03-04 02:23:34 字數 4613 閱讀 3819

1樓:匿名使用者

a是一個指標

把指標a所指向的內容賦值p

2樓:雨在空中飛翔

a為指標 *a表示指標地址的內容 p=*a 把指標內容賦值給p

3樓:匿名使用者

將a指向的變數的值賦給p

c語言中p->a是啥子意思

4樓:匿名使用者

p 是一個結構體或者共用體型別資料的指標。

p->a表示訪問該指標上,名為a的資料成員。

等效於(*p).a

5樓:匿名使用者

p是一個結構體型別的指標變數,這個結構體中有一個屬性a,這個語句就是取他指向的物件的屬性元素a

c語言中*p=a和p=&a意義一樣嗎?

6樓:古爾格

不一樣,

前者:* p是指向記憶體p地址中所存的單元,*p=a是把這個單元內的值取a。

後者:p是一個變數,&a是取a變數的地址,p=&a就是獲得a的記憶體地址。

7樓:育知同創教育

總得來說沒區別,就是指標初始化的時間不同而已int *p = &a;//這裡p宣告的時候直接初始化它的值為變數a的地址

int *p;//宣告指標p,p的值不確定可能指向任何地址,p = &a;//顯示初始化使p指向a的地址

8樓:匿名使用者

不一樣,一個是取數值一個是取地址

c語言中*p=a與*p=&a有什麼區別

9樓:清鵬之

讓我來綜合一下吧

在定義的時候

int *p=&a; 是等同於 int=*p;   p=&a;的。該形式只在定義的時候是正確的。就是指標p所指向地址的內容為a的內容。

如果不是定義的時候

*p=&a; 就是它字元的那個意思,就是指標p所指向地址的內容為a的地址。

dev c++試了下

————————————————————————————————————

「*p」表示地址為p儲存單元的內容;「p」表示地址;「&a」表示取a的地址;a為變數。

int *p;//初始化指標,但是該指標無指向地址!如果直接使用會有問題。

int *p=&a;//初始化指標,該形式只在定義時正確,表示以p指標所指向地址的值為變數a的值。

p=&a;//表示指標p所指向的地址就是a的地址。即地址間的賦值。

*p=a;//表示指標p所指向地址的內容就是內容a。

在c中,指標一定要初始化,指標加1指的是增加一個儲存單元。對陣列而言,這意味著把加1後的地址是下一個元素的地址,而不是下一個位元組的地址,這是為什麼必須宣告指標所指向物件型別的原因之一。

10樓:匿名使用者

首先來說一下*和&,為了便於理解你可以認為,這裡*是取內容,&是取地址。

我不討論它們的區別,因為*p=&a這個形式一般是錯的,常用的是p=&a。

下面比較*p=a和p=&a。看圖,圖很詳細。

顯然它們是等價的。

然後比較*p=&a和p=&a;

則這兩種都是對指標變數的賦值,賦值有兩種形式

①先定義後賦值

int a=3,*p;(定義指標變數*p)

p=&a;(對指標變數取地址)

②定義變數的同時賦值

int a=3,*p=&a

也就是說在賦值時,

int *p=&a

相當於int *p,

p=&a

它們的區別其實就是

int *p=&a是同時定義*p並對賦值p(即a的地址賦給p),而p=&a,只是對p賦值,沒有定義指標變數。

但要注意,只有在同時定義賦值時「*p=&a」這種寫法才是對的

其他情況下不要用*p=&a,這種形式,因為根本就不對,如下圖。我之前一直的疑問是為什麼賦值時*p=&a就不算錯了?後來老師給的解釋是這種形式只有在上面那種情況下成立,其他的情況確實都是錯的。

11樓:沉睡的羅羅塔

*p=&a;是將a的地址賦值給*p,結果會是一個十六進位制的數。 第二個是讓p指向a的地址空間。*p的傎和a相等。

int a=2,*p; *p=&a; 列印*p應該是一個地址值,很長一串, p=&a; 打*p印結果會是2;

對於指標來說,

*p = a[0],表示向地址為p的記憶體區域賦值為a[0]。

p = a[0],把變數p的值改為a[0],這個語句正常應用中是錯誤的。變數p的值為記憶體地址,這樣賦值會丟掉p原來指向的記憶體。

12樓:幻想祕境

*p=a是將a的值給p指標指向的地址的值

*p=&a是將a的地址給p指標指向的地址的值

c語言中*p=&a是什麼意思

13樓:

假設我們定義一個指標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。

14樓:志遠

一樓說的不對

第一個表示p是一個指向指標的指標. *p取得p指向的指標,&a的地址賦予該指標.

第二個表示p是一個指標,&a的地址賦予p

15樓:匿名使用者

這個表示式我分成兩部分分析:

左值  *p

解引用運算子(*)的作用是將一個指標解引用,也就是獲取指標指向記憶體地址的內容。而這裡作為左值,就是將右值&a的內容賦予指標所指向的記憶體空間。

2.  右值  &a

取地址運算子(&)作用剛好和解引用相反,是獲得一個變數(不能是常量或暫存器變數或函式)的地址。這裡就是說取a變數的地址。

綜上,這句賦值表示式的意義為

將a變數的地址賦予p指標所指向的記憶體空間,也就是說**p 的值和 a相同

16樓:匿名使用者

第一個*p=&a表明了指標變數p在之前已被初始化了,簡單來說就是把指標變數p中所指向的地址的值改成了變數a的地址。即指標變數p是一個指向指標的指標變數。

17樓:鼎湖闇火

*p=&a 是將a的地址賦給p指向的變數p=&a 是將a的地址賦給p

但在變數定義語句中

int *p=&a;等價於int *p;p=&a;

18樓:匿名使用者

語句*p=&a是指把變數a的地址賦給指標變數p所已指向的某個指標變數,說明p是一個指向指標變數的指標變數;語句p=&a是指把a的地址賦給指標變數p,說明p是一個基型別為變數a這種型別的指標變數。

19樓:匿名使用者

記得不太清楚了

好像是: 上面是說p指標 指向a的地址 也就是說 *p就是a的值

而下面一個就是 指 a的地址 不能獲得a的值

20樓:匿名使用者

第一個是p指標的內容是a的地址

第二個是p指標的內容是a的內容

21樓:匿名使用者

*p=&a是把a的值賦給p,p=&a是把a的地址賦給p。

22樓:經寧機湛藍

1、在宣告語句中int

a;int*p=

a;//

宣告p為整

形指標變數,並指向變數a的儲存地址。 2、在執行語句中inta=2,b=

3,*p;*p=b;

//p指向的地址單元存入b的是值3......................*p=a;

//p指向的地址單元存入a的是z值2 通過以上兩個例子可以看出,*p=a在宣告語句中和執行語句中的含義是不同的。

c語言中pa那麼p與a的區別是什麼

a和p是變數,a和 p是表示式,1和0x1000是常量a和 p表示的都是整形左值,p和 a表示的都是指標型左值,1和0x1000表示整形和指標型右值。左右值的概念不清的話,google一下 在記憶體中,a和p有儲存空間空間,a存放著1,p存放著0x1000,p和 a沒有空間,他們的運算結果是在暫存器...

c語言中和,C語言中 和 是什麼意思

可以提高程式的效率 編譯器在語法翻譯的時候最終會用逆波蘭式來表示 其他的也可以的 也就是翻譯成x a的形式。所以我們書寫的時候把x x a 寫成x a說一下原理 x a等價於 x x a。大三的時候編譯原理有講的。祝你好運 是賦值運算子。i 2,是指把 2 這個值賦給i,這樣i就有了值,為2。是比較...

c語言中wb,rb是什麼意思,C語言中c是什麼意思

在c語言的檔案操作中,wb和rb分別對應著對二進位制檔案的兩種操作方式 寫操作和讀操作 c語言中 c是什麼意思 用於格式化輸入輸出函式中,針對char型別的匹配。比如 輸入 用於輸入一個字元型。輸出時類似。所有的格式化輸入輸出函式,都可以用這個。c語言中的 c 是什麼意思?例如printf c c ...