inta3intpp請解釋pa是錯誤的原因

2021-03-03 20:30:22 字數 1621 閱讀 3647

1樓:匿名使用者

不能那樣給指標賦值

int a=3;

int *p=&a; //可以這樣在定義的時候初始化也可以這樣

int *p;

p=&a; //把a的地址賦給p

*p=5; //這樣給p指向的地址賦值

2樓:劉子超1號

p的資料型別是指抄

針,指標使用地址賦值襲,bai所以可以使用p=&a;

*是運算子,*p的數du據型別便不再是指標zhi,而是整型資料,使用dao整型資料賦值,所以可以使用*p = a;

但是*p=&a,『=』運算子左右兩側的資料型別不同,所以編譯時會報錯,不存在int*到int型的運算子過載。

3樓:匿名使用者

*p=&a這句話本來有錯誤,很明顯的。*p是一個值(指標指向的值),而&a是一個記憶體地址,應該這樣至少p = &a;明白不,大神!

8.在int a=3, *p=&a;中,*p的值是( )。

4樓:匿名使用者

p定義為一個指標,存放變數a的地址,在變數p之前上取數符*,故*p為a的數值3

5樓:匿名使用者

應該選b

可以分解為:

int a=3;

int *p;

p=&a;

所以*p為a的值,p為a的地址

6樓:匿名使用者

p=&a 指標變數p指向a 的地址 其值為 a的地址

*p=&a 為指向(指標變數p所指向的a的地址)其值為3

7樓:匿名使用者

答案是 3 呀

第一個*p是定義一個指標變數p,p指向a的地址第二個*p是從p指向的地址中得到值

就是3了

int a[2][3] ,*p[3] ,p=a為什麼是錯的 p[o]=a是對的

8樓:匿名使用者

語句整理如下:

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

/*a[2][3]二維陣列;*/

/*p[3]指標陣列(注意:不是陣列指標)*/a可以作為地址

9樓:黃邦勇帥哥哥

要想使抄p=a正確,請使用

襲int (*p)[3];的宣告,該語句表bai示,指標p是一個指向含有三個元du素的zhi一維陣列dao的指標。而a[2][3]中的陣列名a,表示的是指向二維陣列第一行中含有3個元素的陣列的指標,因此可以對其賦值。陣列名不是像一樓說的a是指向的a[0][0],而是指向的a[0]也就是說a表示的是a[0]的地址&a[0]。

因為a=a+0,因此a+1指向的是a[1]的地址,即&a[1]。指向a[0][0]的是a[0]也就是說a[0]本身就是一個地址,你可以輸出a[0]就知道了。而*a[0]就能輸出a[0][0]的值。

即a[0]指向的是&a[0][0]

*p[3]表示的是宣告的一個指標陣列,在這個陣列中的每一個成員都是一個指向int型的指標,因此只能對p[0]賦於int型變數的地址,比如int i=1; 則可以使用p[0]=&i來賦值。同樣可以使用p[0]=a[0];或者p[0]=&a[0]

若有定義 float x 1 5 int a 1,b 3,c 2,則正確的switch語句是

若有定源義 float x 1.5 int a 1,b 3,c 2 則正確的switch語句bai是 duswitch a b 所以這一題選zhi擇c。switch語句的基本形式dao switch 表示式 對於swith 表示式 中的表示式,可以控制程式的執行過程,表示式的結果必須是整數 字元或列...

int a 2,b 3,c 4,d da bcjava中輸出是10,請問為什麼啊

1 b c 預設情況下 執 況是從左到右 b c 2 b 是在運算完之後才會 1,並不會把 1後的值帶入表示式中計算。d 3 3 4 10 a表示先自增1然後參與運算 a 表示運算後再自增1 在後面,先取值再自加。在前面,先自加,再取自加之後的值。變數的值 和 計算之後的值要分開來看的。此處 從後向...

在int a313,24,5,60中,a的值是A 3 B 2 C 6 D

相當於初始化陣列 int a 3 這個初始化對於這個陣列的前7個元素分別初始化為1,3,2,4,5,6,0,剩餘則全部初始化為0 這個陣列是2維陣列,給出第2維長度為3,那麼編譯器根據初始化的情況對第一維長度進行判斷,給出能容納所有初始化數值的最小長度。這裡編譯器應該選擇a 3 3 即初始化了個3x...