若有說明int a 2 p a,q p則一下非法的

2021-04-18 07:37:52 字數 3092 閱讀 9461

1樓:匿名使用者

da是整型數,

int *p,*q定義了指標,

p,q是指向整型的指標。

p取得a的位址內

容,而q取得p的位址

p,q是指標(也就是乙個位址),而*p和*q是這個指標指向的整型數值(存放在這個位址的值)。

a)把q的位址賦給p,則p和q完全一樣了,都指向乙個數2b)把q中資料給p

c)把q中資料給a

d)a中資料是2,不能夠給乙個位址。除非*q=a;

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

2樓:匿名使用者

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,因為兩者不是同一型別資料,所以不能進行運算,所以這個是錯的。

3樓:聽不清啊

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

4樓:匿名使用者

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

不能將int *轉化為int型

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

5樓:

說明的意思是

n是整型數

p所指空間為n的位址

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

答案很明顯

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

b)錯,首先型別不匹配

6樓:匿名使用者

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

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

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

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

7樓:匿名使用者

b) p=n;

應改為p=&n;

c語言:int m=2,*p=&m,*q=p;,則以下非法的賦值語句是______。 a) p=q; b) p=m; c) *p=*q; d) m=*q;

8樓:匿名使用者

正確答案:b

a:指標q賦值給p

b:整型m賦值給指標p (很明顯型別不匹配,正確應該為p=&m;)c:*p和*q解引用都是整型,整型賦值

d:*q解引用是整型,賦值給整型m

9樓:

p和q都是指向整型的指標,m是乙個整型

a:指標q賦值給p

b:整型m賦值給指標p

c:*p和*q解引用都是整型,整型賦值

d:*q解引用是整型,賦值給整型m

答案很明顯了

10樓:剎那間

你好,可以確定是b,因為m是乙個int型變數,而p是一位址,不可以將m的值賦給乙個位址變數

若有定義:int n=2, *p=&n,*p=q ;,則以下非法的賦值語句是。 a, p=q; b. *p=*q; c.n=*q; d.p=n; 5

11樓:始

d寸p指向位址。p=&n可以。n為整形數,不是位址

12樓:匿名使用者

{ int a=10; a =a-=a*=a; printf(

若有說明:int n=2,*p=&n,*q=p;

13樓:匿名使用者

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,因為兩者不是同一型別資料,所以不能進行運算,所以這個是錯的。

14樓:匿名使用者

a是兩個指標變來量之間源的賦值,正確

b是兩個指標變數所指向的記憶體單元之間的賦值,正確c是乙個整型變數和乙個整型指標的解引用之間的賦值,正確d是乙個整型變數和乙個整型指標的賦值,c語言不允許直接用整型變數給指標賦值,不正確。

15樓:匿名使用者

a b c都是對的

a p=q p和q都為指標變數,讓p指向q的位址b *p = *q 讓p指向位址的值 等於專q指向位址的值 *取值符號

c n=*q;

d p=n 不能這樣寫,p是指標屬變數,是代表位址,而n是值 寫成p=&n就對了

16樓:wonder想知道

以下依copy

次解釋abc:

a)因為p和q是同一型別的(都是int*型),所以可以把q賦值給p;

b)*號是取 指標所指向的儲存單元 的符號,p和q都指向n,所以*p相當於n,*q也相當於n,那麼這條語句就相當於n=n;,所以也沒問題。

c)同上,這條語句相當於n=n,所以也正確。

而d中等號兩邊的型別不同,不能相互賦值,所以錯了

若有說明inta

若有說明 int a 3 則陣列a第一維的大小是3。int a 第乙個中括號表示有此二維陣列有幾行,第二個表示有幾列。故int a 3 說明此陣列有n行,3列 也就是說每行有三個元素,所以第一行有1,2,3 這三個元素,第二行有4,5,6三個元素,第三行有7這個元素,不足的兩個元素由0來補足。對陣列...

若有說明陣列inta4則以下對陣列a的

c唄,裡可以用運算子,只要不超過規定的最大數減一就行。c是對的 a的那個4已經超出範圍了 b,沒有這種寫法 d不能用圓括號,只能用方括號 若有說明 int a 3 4 則對 a 陣列元素的正確引用是 a 2 4 越界了 最後乙個元素a 2 3 引用時下標從0開始 第一行a 0 0 a 0 1 第三行...

C語言若有定義 int a 1,b 2,c 3則語句 a丨丨 bc,執行後b的值為多少

2,或運算只需乙個滿足就行 a 2不等於0個,故或運算結果為一,b運算沒得到執行 a 算得結果是邏輯真,跟後面的部分進行邏輯或運算,不管後面的部分算得結果是真還是假,最終結果都是趙,所以後面的部分就不算了。所以運算後 b 的值還是 2。同理,c 的值還是 3。c語言,若有定義 int a 1,b 2...