C語言中,a p 什麼意思,c語言中 p a是什麼意思?

時間 2021-08-11 17:09:40

1樓:幸福de小陽

你好,可以這麼理解:

p 是一個指標變數,他所指向的變數的型別與 a 的型別一致。

p 指標指向的變數值是多少,那麼 a 就等於該值。

之後 p 指標指向的那個變數值自加 1.

注意:變數 ++ 這種格式的表示式值是變數值本身,賦值之後變數值才自加 1.

2樓:

*與++都是同級單目運算,所以他們的運算順序由結合方向決定的,他們具有自右向左的順序,

a=*p++ 的意思是先將指標變數p指向的資料賦值給a ,然後 在將指標變數p加1,即指向下一個資料

3樓:周生

把p中的內容送入暫存器(實際上是個地址),然後p自增1,再通過暫存器中的地址定址到記憶體中的值賦給a

問題的關鍵在於++運算子的優先順序比*的優先順序要高,由於是後++,所以a得到的是p自增之前指向的記憶體中的值

4樓:滄海雄風

*p指標指向的值 賦值給a 然後指標後移

一樓的說反了

5樓:匿名使用者

是指標的運算方面的知識,相當於指標地址往高位移動一個位元組

比方說p本來的地址是0x000000,通過運算後會變成0x000001

6樓:匿名使用者

p指向的值給a,

然後p指標加1(指向下一個單元)

7樓:吳龍

a=*p++ ;等同於 a=*p ; p++;這兩步

8樓:戈壁與清潭

就是a 獲取 p指標指向地址物理儲存空間裡的值,然後指標後移1位

9樓:匿名使用者

p指標指向的值賦給a,然後指標加一指向下個單元.

10樓:匿名使用者

根據運算子的優先順序問題:a=*p++的意思是先將指標變數p指向的資料賦值給a,在將指標變數p加1.

11樓:匿名使用者

將p指向的值賦值給a,然後地址加1 ,

12樓:匿名使用者

將指標變數p指向的資料賦值給a,然後將p+1;

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

13樓:匿名使用者

c語言中*p=a是指標變數賦值語句,這種寫法有兩種可能意思:

指標變數定義時的初始化賦值

int a[10];

int *p=a ; //這時的a是個地址,如:陣列名或指標變數,表示定義指標變數p,同時,p指向地址a。 這裡的*是跟隨int的,用來表示p變數是int *型別。

指標變數定義後,給指標變數所指記憶體中的資料賦值int a=10, x;

int *p ;

p=&x ; //p指向變數x的地址

*p=a ; //這表示向p所指向的地址中儲存一個資料a,a是個整型資料。p是x的地地址,*p就是x,本句相當於x=a ;

這裡的*是指標變數引用操作運算子,表示引用指標中的資料注意:p=&x ;  很重要,指標變數必須要指向一個明確的地址,然後才能*操作,否則,未指定地址的指標變數被稱為野指標,引用野指標會造成程式執行異常。

14樓:惑

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

我不討論它們的區別,因為*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就不算錯了?後來老師給的解釋是這種形式只有在上面那種情況下成立,其他的情況確實都是錯的。

15樓:匿名使用者

1、在宣告語句中int a;int *p = a; // 宣告p為整形指標變數,並指向變數a的儲存地址。 2、在執行語句中int a = 2,b = 3, *p;*p = b; // p指向的地址單元存入b的是值3......................*p = a; // p指向的地址單元存入a的是z值2 通過以上兩個例子可以看出,*p = a在宣告語句中和執行語句中的含義是不同的。

16樓:匿名使用者

將a的值賦值給指標p

進行這樣的操作,你要確保變數a是一個合法的指標!

否則,當你使用指標p時,會出問題!

17樓:匿名使用者

不合法!a不是地址!是變數啊!

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

18樓:

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

19樓:志遠

一樓說的不對

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

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

20樓:匿名使用者

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

左值  *p

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

2.  右值  &a

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

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

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

21樓:鼎湖闇火

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

但在變數定義語句中

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

22樓:匿名使用者

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

23樓:匿名使用者

記得不太清楚了

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

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

24樓:匿名使用者

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

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

25樓:匿名使用者

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

26樓:經寧機湛藍

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語言問題!在c語言中,**p 和*&a[1]以及,*p=&a,什麼意思

27樓:土豆炒土豆

**p是指向*p的一個指標,*&a[1]是先取a[1]的地址,然後指向其地址,其實就是a[1],後一個取a的地址並賦值給p,然後*p就指向了a

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

28樓:沉睡的羅羅塔

*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原來指向的記憶體。

在C語言中是什麼意思,C語言中 c 是什麼意思?

勢如雲 這是c語言的邏輯運算子 異或 這個 講的非常詳細,我摘抄了一些,詳細的你看以看看。有很例子,好懂!邏輯運算子把各個運算的變數 或常量 連線起來組成一個邏輯表示式。邏輯運算子有4個,它們分別是 邏輯非 邏輯或 邏輯與 異或 在位運算裡面還有 位與 位或 的運算。什麼是邏輯運算 邏輯運算用來判斷...

c語言中ffn表示什麼意思,C語言中f f n表示什麼意思

如果n是變數的話應該是求n的階成 將f的值和n的值相乘 再把結果儲存進f裡 夕下眼微光 把等號右邊的f看成是一個容器,左邊的f 是容器原來裝著的東西 數值 f f n就是把容器裡原有的東西翻n倍後再裝回f這個容器中 表示f乘以n以後再賦值給f c語言 f n 什麼意思 呼叫一個函式,這個函式名是f,...

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

肥仙女 sizeof是c語言中保留關鍵字,也可以認為是一種運算子,單目運算子。常見的使用方式 int a 10 int arr 1,2,3 char str hello int len a sizeof a int len arr sizeof arr 結果是 len a 4,len arr 12,...