對於以下變數,正確賦值的是 int p 3A p a B p a C p a D p

2021-03-22 00:25:22 字數 3260 閱讀 2646

1樓:星空

bp為a【0】地址。

2樓:匿名使用者

c

定義為int *p[3],a[3];

可知這裡p是一個指標陣列,p為陣列名,所以不能作為賦值號的左運算元,所以ab不對

*p即p[0],所以c等效於p[0]=a,如上所說,陣列p的元素是指標,所以d是不合適的

變數定義為:int *p[3], a[3];,( c )是正確的賦值。 81. a.p = &a[

3樓:寧靜の樂章

p是一個一

維陣列,沒問題吧?他的元素型別是int*,所以他裡面存的應該是指標(地址)值,理解?a是一個一維陣列,他的元素是int,a就是這個陣列的首元素地址,這個肯定記得吧。

那麼把a(型別是int*)賦給p中元素p【0】當然是沒問題的了

有定義 int s[3][10],(*k)[3],*p; 以下賦值語句正確是 a.p=s; b.p 30

4樓:匿名使用者

a.p=s; //左右型別不同! s是二維陣列,相當於二維指標,而p是一維指標變數,所以,嚴格來說是錯的

b.p=k; //左右型別不同! k是陣列指標,指向三個int資料的塊指標,相當於二維指標,所以,嚴格來說是錯的

c.p=s[0]; //正確

d.k=s; //左右型別不同! k是指向三個int資料的塊指標,而s的一行有10個元素

若有定義語句:int a[2][3],*p[3]; ,則以下語句中正確的是

5樓:匿名使用者

應該選c。

p是一個指標數

組,它有四個元素,每個都是一個指向int型的指標。

a是一個二維陣列,它的每個元素都是int型的。

a的錯誤是因為p是常量(陣列名都是指標常量),不可以被賦值。而且p和a的型別也不一致。

bcd都是對p的元素賦值,這是可以的,等號右邊應當是一個int型資料的指標(即地址)。c選項中a[1][2]是a的一個元素,是一個int型值,&取了它的地址,所以是正確的。

6樓:匿名使用者

int* p[3]是定義了一個大小為3的陣列指標,也就是定義了三個int型的指標。

p代表指標陣列的首地址,相當一個二維指標。

p[0],p[1],p[2]代表一個int型指標c是對的

若有定義語句:int a[2][3],*p[3],則以下語句正確的是(c)

7樓:匿名使用者

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

因為的優先順序比*高所以p是一個陣列,這個陣列存放的是指向整數的指標。

即存放的是一個整數變數的地址。

而&a[1][2]正好是一個整數的地址。

所以p[0]=&a[1][2]正確。

補充回答:

因為dint *p[3];

p是一個陣列,這個陣列存放的是整數指標。

p[1]就是一個整數指標。

但是&a並不是整數指標,它是一個陣列的指標。

8樓:

帶星號證明是指標,賦值時只能給一個地址值,我只知道這了,那你就看a是代表首地址還是首個值

2. 若有以下定義,則賦值正確的是

9樓:匿名使用者

p = &c ;意思:取c的地址給p,型別不對。p要的是指向int型的變數的地址,但這裡卻給了個float型的。

q = p;:用p給q賦值。型別不對。p是指向int的指標,q卻是指向float的指標,型別不同不能賦值。除非強制轉換。

p = null; :p是一個指標,但它不指向任何變數,多以答案對的。也就是暫時先不給它賦值,以後再賦值。

如:int a = 0, *p;

p = null;

.....

p = &a;

q = new : 語法錯誤。new是關鍵字。

10樓:匿名使用者

a: p=&c 由於p是int型指標,

&c是浮點型地址,型別不合,如果寫成p=&a就可以了b: q=p 類似,q為浮點型指標,p為整型指標,型別不合c: p=null 任何指標都可以指向空

d: q=new 不完整語句,可以寫成q=new float根據上面分析,所以只有c正確

11樓:虎光牆

a。c是浮點型的賦給整型p不對,同樣b也排除,d。new是關鍵字,怎麼能賦給q。

設有定義語句:int a=3, b, *p=&a;要將變數a的值賦給變數b,下列語句中不正確的賦值方式是______。

12樓:匿名使用者

選d*是用來取指標指向的地址中的資料的.a不是指標,當然不能寫作*a了.

而b=*&a之所以對是因為:

int *p=&a;它相當於int *p;p=&a; p是指標,所以&a也是指標,所以才會有*(&a)之說啊

int (*p)[3],a[3];a,p都是指標,為什麼不能進行p=a操作?

13樓:睦桂花成嬋

型別不一致,因此不能賦值。int

(*p)[3]的型別是int

(*)[3],指向每行具有3個元素的行指標;a[3]的型別是int*,指向整型變數的指標。

14樓:鄂成元珍

因為p是指標陣列,儲存的是指標

單純的p,表示這個陣列的首地址,是一個常量,是不能被賦值的就像你不能進行如下操作一樣:

0x000=a;

如果要真想賦值,應該是對p的成員賦值:

p[0]=a

若有定義 int a[3][4],b[4][3],(*p)[4]; 下列賦值等式正確的是 答案是 p=&a[1] p=b為什麼錯

15樓:匿名使用者

(*p)[4]的意思是:p是一個指向具有4個int型別元素陣列的指標。

a[3][4]有3行,每行的元素有4個

b[4][3]有4行,每行的元素有3個

所以 p=&a[1]是對的,讓p指向a的第二行的四個元素,因為a的每行有四個元素,這與p的定義恰恰是匹配的。

以下選項中,不正確的賦值語句是A x y B xC x 2 D x 5求講解

選da.x y 將y的值賦給x b.x 將x的值增1 c.x 2 將x除以2的餘數賦值給xd.x 5 判斷x的值是否與5相等,不會改變x的值,故選d x 相當於 x x 1 x 2,相當於 x x 2 x 5,是比較表示式 很明顯,選d 是不正確的c語言賦值語句。a.x 1,y 2 b.x c.x ...

以下正確的賦值表示式是A x 2 y3 c B (x 10 2,y 3),z 3 C x

ca 等價於 抄x 2 y 3 c y y 1 的運算襲2優先順序高於 所以上式又等價於x 2 y 3 c y y 1 因為 2 y 不是有效的變數,所以a錯誤 b 等價於 x y 3 z 3 很明顯這不是賦值語句 注意 運算子是取最後一個 c正確,等價於 x y z y y 1 z z 1 d 等...

若a是int型變數,且a的初值為6,則執行下面表示式後a的值為a a a a

從右到左開始運算。首先a a a a a 36 a a a 就是 a 6 36 30然後再 a a 就是 a 30 30 60 c語言一道題目,求解,若a是int型變數,且a的初值為6,則執行表示式a a a a後a的值為 從右往左依次計算 a a a得到a a a a 6 6 6 30a a得到a...