p(int a是什麼意思,“int p”和“int p”有什麼區別?

時間 2021-08-14 06:07:21

1樓:

問問題不要斷章取義。*p=(int *)a這個不是一個完整的語句,前面後面都可能省略內容。

float b=3.14,*a=&b;

int *p=(int *)a; //這個才是完整的,前面有int *,後面有分號。表示將指標a的型別轉換為整型指標再賦給p。

2樓:鈄問青

你好!!!

int (*p)[m]定義的陣列指標,表示定義一個指標變數,此指標變數是指向一個含有m個元素的一維陣列:舉例:

int a=,(*p)[5];p=a;那麼指標p就指向陣列a的首地址,*(p+i)表示陣列a中的值。

一個更常用的用法是:用二維陣列的行地址給其賦值:

int a[3][2]=,(*p)[2];

p=a[0],p=a[1],p=a[2]表示把陣列的每一行的首地址賦值給指標變數

注意一點:int (*p)[m] 中的m一定要和a[n][k]中的列數即k相等

int *p[m]表示宣告指標陣列p,其指向含有m個指標元素的首地址。舉例:

int a[3][2]=,*p[4];

p[0]=a[0],p[1]=a[1],p[2]=a[2]

注意int *p[m] 中的m一定要和a[n][k]中的行數和列數即n和k沒有任何關係!!!

3樓:匿名使用者

就是把a強制型別轉換,變成指向整型的指標值,賦給指標p指向的地址。p應該是指向整型的指標。

比如a=0x33445566,p=0x12452345,執行完後,地址0x12452345指向的記憶體裡的值應該是0x33445566。

“int **p”和“int *p”有什麼區別?

4樓:怕不他啊不了

int *p表示的是一級指標,表示p所指向的地址裡面存放的是一個int型別的值。

int **p表示的是二級指標,表示p所指向的地址裡面存放的是一個指向int型別的指標。

一級指標存放變數的地址,指向的值是變數的內容。如int* p=, p=陣列的首地址,*p=陣列的第一個值;

二級指標存放一級指標的地址,指向一級指標。如int*p =, int**pp=&p,pp=指標p的首地址,*pp=陣列的首地址,**pp=陣列第一個值1。

指標陣列的陣列名傳遞引數對應為指標的指標即二級指標,二維陣列的陣列名傳遞引數對應為陣列指標即指向一維陣列的指標

一級指標通過形參,可以修改實參中指標所指向的地址中的值。修改不了實參中指標所指向的地址。需要藉助二級指標才可以。

5樓:尉詩桃牟畫

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

int *p=a和int *p=&a有什麼區別?

6樓:匿名使用者

int *p=&a 其實是兩個語句 等價於 int *p; p=&a;

如果a是int型,int *p=a是錯誤的,正確的應該是 int *p; p=&a;

在定義的時候不能給p直接賦值整型,只能賦值int型地址 即 &a;

如果要給p指標指向的地址賦值,就可以*p=a;但不能在定義*p的時候直接賦整型。

7樓:

int a[10];

int *p=a; //與前面定義的陣列名a型別相同,才可以這樣賦值。

int a;

int *p=&a; //前面定義的a是普通變數,才可以這樣賦值。

8樓:捧一米陽光

從基本定義來啊,int *p之後p為一個地址,*代表指向這個地址,int *p=&a等價於int *p,p=&a.這樣p和&a都是地址,可以=。對於int *p=a,如果a為陣列名,則也是個地址,與前面的就同了,如果a只是個一般變數,p是地址,*指向它,*p合起來就是一個數,如a是int型,就可看成兩個數賦值,如果a不是int型,出錯

9樓:匿名使用者

我的理解

int a,*pa=&a;是正確的,相當於int a,*pa;pa=&a;即(int*)pa=&a。

而int a,*pa;* pa=&a;是錯誤的,因為*pa是值,&a是地址。

10樓:孤楠獨碧

int *p就是申請一個int型的指標p,指標是用來儲存地址的,所以&a就是取得a的地址賦給p。但是int*p=a的話,a必須是個地址,可以是指標,也可以使陣列名。

11樓:不瀟撒的漁

int* p 是定義個指標變數,&是取址符;

所以int* p=a,是定義個整型指標變數,並將a賦值給該變數;

int* p=&a,是將a的地址賦給該整型指標變數;

12樓:

我猜你的 a是int型的 假設定義了 int a = 12; 那麼 int *p = a;編譯是通不過的, 因為這裡p初始化是把 int 型直接賦值給了 int*這是編譯器不允許的, 而後者 int *p = &a, 是把變數a的地址賦值給指標p 意思是把a的地址儲存在指標的記憶體空間中, 我們查詢 *p 是根據指標p儲存的地址去找到a的。

13樓:我的查出

int *p=a相當只要你給與a一個具體的值該指標將指到那兒

int *p=&a是&a中的a是你輸入的值所在的位置而p指的是地址a的地址

14樓:匿名使用者

int *p=a p指標的值(p代表的地址)是a

int *p=&a 表示p指標指向的是a的地址,p的值是a的地址

15樓:匿名使用者

前者是將a的內容賦給指標p(也就是p指向a指向的資料)

後者是將a的地址賦給指標p(也就是p指向a)

16樓:匿名使用者

int *p=a 表示p指標的地址是a

int *p=&a 表示p指標指向的是a的地址,p的值的a的地址

17樓:匿名使用者

nt *p是定義一個指標 對應的該是地址

int*p=&a 則a是個指標或陣列

int*p=&a 則a是個資料

18樓:胡曉帥

前者a的型別應該為int*,為負值操作,p的值等於a的值

後者a的型別應該為int,為取地址操作,p的值等於a的地址

19樓:天蠍

1)int *p=a;

舉例:int *p=100;

p是一個指標變數,將一個常量賦給一個指標變數,p等於地址0x00000064,即p是指向某個數的指標變數,該數的地址是0x00000064,一般實際中沒這麼用;跑下程式:

2)int *p=&a;

舉例:int a=100; int *p=&a;

a是一個變數,p就是指向a的指標變數,即p等於a的地址;跑下程式:

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

20樓:匿名使用者

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 ;  很重要,指標變數必須要指向一個明確的地址,然後才能*操作,否則,未指定地址的指標變數被稱為野指標,引用野指標會造成程式執行異常。

21樓:惑

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

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

22樓:匿名使用者

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在宣告語句中和執行語句中的含義是不同的。

23樓:匿名使用者

將a的值賦值給指標p

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

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

24樓:匿名使用者

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

int p是什麼意思,int p 3 是什麼意思?

類比一下就知道了 int p 3 p是三個元素的陣列,每個元素都是int型double p 3 每個元素都是double型int p 3 每個元素都是int 型再對比一下 int p p是一個指標變數 int p 3 p 0 p 1 p 2 分別都是指標變數 覆蓋黑色 int p n 定義的是一個指...

在c 中,int p和int p有什麼區別

風若遠去何人留 int p為引用,而int p為定義變數。二者區別如下 1 引用在定義的時候必須賦值,否則編譯會出錯。正確的形式為int p a 其中a為int型變數。2 引用在定義時不會分配空間,只是初始化變數的一個別名。如int p a 的形式,後續對p的操作,與對a操作完全等價。 一個為指標形...

是什麼意思, 和 分別是什麼意思?

在數學裡,是指相似的意思。大概有幾條定律可以判斷相似三角形。偶是初三學的。其實和你初一學的 全等三角形有異曲同工之妙呢!相似三角形的判定定理 1 如果一個三角形的兩個角與另一個三角形的兩個角對應相等,那麼這兩個三角形相似,簡敘為兩角對應相等兩三角形相似 2 如果一個三角形的兩條邊和另一個三角形的兩條...