若有說明 int n 2,p n,q p則以下非法的

2021-05-06 04:44:26 字數 2245 閱讀 1379

1樓:

說明的意思是

n是整型數

p所指空間為n的地址

而q所指空間為指標p的指

答案很明顯

a)對,把q這個地址值賦給p的指向空間

b)錯,首先型別不匹配

2樓:匿名使用者

這兩個賦值語句在合適的編譯環境下可以視為合法,只不過賦值期間編譯器會進行型別值的隱式轉換。

當前大多32位cpu編譯器環境中,地址匯流排32位因此指標變數的大小也是32位。而一般int型別大小也是32位。本質上,地址變數儲存的數值也是整型,因此從bit級角度講,這二者之間進行賦值操作是可以完成的,但由於這種賦值而可能引起的後來的指標引用對記憶體讀寫就可能帶來嚴重無定義的後果。

*p=q其實就是把指標q中儲存的地址值複製給p指向的int型變數空間中

p=n其實就是把int型變數n的值2複製到指標p的變數空間中

3樓:匿名使用者

b) p=n;

應改為p=&n;

若有說明:int n=2,*p=&n,*q=p;則以下非法的賦值語句是

4樓:匿名使用者

p*n是非法的bai。

指標(pointer)是程式語言中du的一個物件,利zhi用地址,它的值直dao接內指向(points to)存在電腦儲存器中另容一個地方的值。

題目中int n=2,*p=&n,*q=p 定義整型n,p是一個指向n的指標,它的值為n的地址。q是一個指標,q的值和p的值相同,也就是它倆是同樣的地址。

p=q使得p的值等於q的值,它倆都是指標,可以賦值。*p=*q意思是指標q指向的值賦給q地址指向的值。n=*q是將指標q所指向的值賦給n。

p*n,因為兩者不是同一型別資料,所以不能進行運算,所以這個是錯的。

5樓:聽不清啊

d p*n 就是非法的,不能正確執行。

6樓:匿名使用者

p是指標,n是整數 不能使用*號

不能將int *轉化為int型

(6) 設有定義:int n=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是

7樓:匿名使用者

選d.a.p是一個指標,不能給它賦一個整型的值1b.

*q仍然是一個指標,*q就是p.所以也不能給它賦一個整型的值.c.

q=p;q是個二級指標,p是一級指標,不能把一級指標賦給二級指標.*p=5,即給n賦值為5,正確.

8樓:匿名使用者

d p是指標q是指向批針的指標,記錄的是地址多翻下書這不太好理解

9樓:匿名使用者

我打假 來了 如上,*q是指標,那麼p就存的是他的地址,就是n 的記憶體中的位置,表示為&n而**p = &q,說明**p是個指向*p的指標 即是**p的值為n,而*p裡面裝的呢是p,即是&n,n的記憶體單元**p 裡面裝的是*p的記憶體單元,在這兒**p 和*p 和q 裡面都裝的是記憶體,是資料在機器裡面的地址,對於這種我們不能夠用這種直接賦值的方式改變它 故而我們看a,b,c 都是這樣 所以abc錯誤,他們都在改人家記憶體

若有說明:int n=2,*p=&n,*q=p;,則以下非法的賦值語句是 a) n=(i=2,++i); b) j++; c) ++(i+1); d) x=j>0

10樓:金色潛鳥

前面的說明與後面的語句好像沒關係,是否抄錯了。

後面的語句:

a) n=(i=2,++i); 正確,小括號裡是逗號表示式,先算 i 賦值2, 再算 i 增1,由於是字首加,把3賦值給了 n.

b) j++; 自增語句,正確。

c) ++(i+1); 錯。 小括號 是表示式,不是變數,不能作自增運算。

d) x=j>i; 估計你沒抄完整。假定是 j>i, 賦值語句 正確. 根據當時條件成立與否,把真或假(1或0) 賦值給x

若有int n=10,m=20,*p=&n, *q=&m;則以下賦值語句中錯誤的是_

11樓:聽不清啊

錯誤的是:d **p=q;

12樓:匿名使用者

錯誤專案:a、b、d

13樓:匿名使用者

b 因為p指向m,則*p = *&n的作用等價於:m = n;

2 若有以下說明 int a 121,2,3,4,5,6,7,8 char c a,d,g則數值為4的表示式是 DA a

a.a g c 因為g沒有值,所以計算的時候會按地址的值來計算。錯 b.a 4 表示的是第5個數。為5c.a d c 使用ascii計算 d c 1,即a 1 2 d.a d c 注意c沒有單引號,故a d c a d a 使用ascii計算 d a 3,即a 3 4 故選擇d 希望能幫助你!變數c...

若有inta21,,若有inta321,2,3,4,5,則a21的值是多少

題目中的初始化矩陣如下 1 2 3 0 4 5 也就是說,大括號對應第一個角標,數字依次對應第二個交表,沒有明確初始化的都是0.所以a 2 1 就是5了 若有int a 3 2 1 3,2 4,5 則a 1 1 的值是多少,急 題目已經給出了除a 0 1 以外所有的元素值。a 1 1 對應的元素值是...

設有定義 int n1 0,n2,p n2,q n

這不明顯回答錯了嘛,p n2的意思是p是n2地址的地址嘛,看回答的居然都是p指向地內址裡的值就是容n2的值,樓主好好看看對嗎?如果按他們說的,那麼p n2和 p n2還有什麼區別?樓主,你被忽悠了 樓主好好看看,滿意回答和你的題目都不一樣啊 選ap,q分別為n2,n1的地址,對 p,q的操作是對地址...