有定義int x 2,p q p,一下賦值語句錯誤

時間 2021-05-06 04:44:46

1樓:開心

d是錯誤的,p是指標,x是變數,指標只接受地址,不能接受變數本身的值。

有定義:int *p,**q,x;如下有p=&x,q=&x,哪個正確?怎樣才是都正確的?

2樓:匿名使用者

p=&x正確,q=&x錯誤,q是二級指標,不能直接指向普通變數,而應該指向一個指標變數,這麼寫就正確:q=&p;

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

3樓:金色潛鳥

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

後面的語句:

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

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

4樓:匿名使用者

正確答案:b

a:指標q賦值給p

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

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

5樓:

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

a:指標q賦值給p

b:整型m賦值給指標p

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

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

答案很明顯了

6樓:剎那間

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

int x=3 int*p=&x int**q=&p 為什麼q等於p的地址。為啥不是int*q=&

7樓:匿名使用者

int x = 3;  /* 定義整型變數x,並代入初始值3 */

int *p = &x;  /* 定義整型指標p,並代入變數x的地址 */

int **q = &p;  /* 定義整型指標的指標q,並帶入指標p的地址 */

在c語言中,所有的變數都是一個容器,而每個容器都有一個地址,指標變數也不例外。

上面**中的p有一個*,是指標,儲存的是整型變數x的地址;q有兩個*,是指標的指標,儲存的是指標變數p的地址。

8樓:匿名使用者

只有指標的指標才能儲存指標型別地址。

因為p是指標型別

所以必須要定義**q型別才能存放

9樓:匿名使用者

前者:先將x放入暫存器ax,然後ax++,再將ax放回x變數內,接著取x的地址放到ax,最後將ax放到變數q;

後者:這個跟int *p = &x++是一樣的,編譯器沒有設定這種情況,所以就會通不過編譯

c語言中則執行語句 q=(*--p)++ 後,變數 q 的值為多少?

10樓:匿名使用者

變數q的值bai

為4.解釋一du下,根據宣告來說,p是指向zhi陣列x第二個元素dao(3)的指標,回這個q=(*--p)++計算順序

答是q=(*(--p))++,即,先對p進行自減運算,自減以後p指向陣列第一個元素(4),然後對這個指標取值得到4,然後是字尾自增運算,結果是p指向的元素自增了,但是返回值為自增之前的值,即4.

11樓:匿名使用者

q為4首先p是一個指向x[1]的int型指標先運算--p,怎p向前移動一個int,指向x[0]的地址*--p就是x[0]的值

把x[0]的值賦給q之後,再對x[0]自加最後q是4,x[0]變成5

12樓:匿名使用者

(*--p)++

先進性--p的運算,開始p指向x[1],執行--p後,p執行x[0](*--p)得到x[0]

(*--p)++相當於x[0]++

變數q的值為4

13樓:xc望心闖天下

答案是4,答案是4,答案是4,

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

14樓:匿名使用者

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

15樓:聽不清啊

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

16樓:匿名使用者

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

不能將int *轉化為int型

int x=7;int*p=&x,**q=p;問你:*p為多少?*q為多少?**q為多少?

17樓:犬蟲門心西安

我同意你的看法。不能對q賦值為p的值,它們的型別是不一致的,一個是int *,另一個是int **

後面不應該問*q的值,我們頂多說*q的值就是p變數的首地址。

18樓:

*p=7

*q=p的地址

**q=7

int x=7; int *p=&x;**q=p,問*q,*p,**q是多少

19樓:君知

題目中的q是**宣告的?

可以看出*p=7 q是**宣告的,可以說完整嗎? 是int **q嗎?

20樓:

*q=p

*p=7

**q=7

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

刑梅花桐昭 擦,看出來了,終於看出來了,b選項裡面,swith int x 後面多了一個分號,格式不對,不符全c 的語法規則,而以上選項裡面只有c選項是語法上沒有任何問題的,呼呼,are youclear? switch int x 後面不能加上 應用switch語句,是針對選擇內容比較多是情況下,...

為什麼c語言中我只定義int的話for i 0 i10 iscanf

常莉忻巨集峻 樓主需要理解一下c語言輸入輸出流的概念。scanf這個函式以空白字元 空格,製表符,回車符都算 作為間隔符,以回車符作為結束符。當c語言執行到scanf這句話的時候,會檢查輸入流是否為空,如果為空,程式就會停止,然後等待使用者輸入。當使用者輸入回車時,輸入結束,c語言會將剛才使用者輸入...

c語言中定義了int,為何我輸入了字母或者其他字元

娛樂小八卦啊 這是因為在輸入了一個字母或者其他字元的時候,電腦會自動識別轉換為對應的ascii碼輸入程式。ascii 碼使用指定的7 位或8 位二進位制陣列合來表示128 或256 種可能的字元。標準ascii 碼也叫基礎ascii碼,使用7 位二進位制數 剩下的1位二進位制為0 來表示所有的大寫和...