1樓:匿名使用者
應該還有一個選項吧,a b c 都是合法的,雖然說a,p++之後,指標p指向的記憶體不確定,但是這個運算還是對的,b c 都是正常的自增自減操作了~~
2樓:
這三個選項都是合法的。
3樓:匿名使用者
c因為 c是float型, 只有int 型 的變數才能自加 或者 指標也行的,因為指標是指向地址是整型。
4樓:匿名使用者
c因為c是float型不能自增。
5樓:匿名使用者
經測試,全部合法。p++是記憶體中進sizeof(int)個位元組,值是無效的,運算合法但不合理
24. 設有定義以下不合法的運算是( a ).
6樓:匿名使用者
char c = 'a' 這裡
baic是一個字元變du量,c--,是減的字元對zhi應的ascii值,減dao1之後,仍然有相應的字元與之
內對應。
而int *p = &a; 這裡
容p是指向整形的指標。而p++訪問的是,整形a後面的那個整形。但由於a不是整形陣列,所以a後面的四個位元組是未知的。
如果int a[10]; int *p = a;那麼p++是合理的。
7樓:匿名使用者
a選項:*p=&a;p指標本身沒有賦值,而是p指標指向內容賦值了,如果p++,那麼p指標不知專指向**去了屬
。d選項:char c='a';c內容是被賦予了字元a的ascii碼值十進位制的65,那麼c--就是十進位制64,相當於是ascii碼錶中的'@'。
8樓:匿名使用者
我看都合法。
編譯執行都沒有問題。
設有以下定義,則下面給出的語句中錯誤的是 int a=0; float b=1.25; char c='a'; #define d 2
9樓:青春永駐
c是錯誤的,因為a+b是常量了,
10樓:風車節姑姑家
選c,是因為增一減一是一元運算子,只需要一個運算元,而這種運算元必須是變數,不能是常數或者是表示式。而c答案(a+b)就是表示式了
定義 int a 1,b 2,c 3執行下列語句,if ac b a a c c b後a的
都沒有下文的呢 a 1 1 3 進入不了判斷 不可能會1 3所以三個變數的值不會改變 int a 1,b 2,c 3 if a b a b if a c a c 則a的值為3。對嗎 授人魚不如授人漁bai。我來幫你分析 du吧,a 1,b 2,c 3 1 如果a大於zhib 那麼dao b賦值給a,...
若有定義 int a 3,b 2,c 1並有表示式 a b,abc,b c 1,c 1,則表示式值相等的是哪兩個
表示式一值為1,表達二好象有錯誤,不能那樣表示,應寫成a b b c,這樣寫二式為真,值為1,三式且符號兩邊都非零,都為真,所以三式值為2,四式為賦值語句,最終結果是c的值為2 第一個 a b 輸出結果為 1 第二個 a b c為真,3 2為真 即為1,但1 1為假 即為0第三個 b c 1 先算c...
若已定義inta1b2c3則表示式abc的值為
1 按照運算子優先順序,的優先順序大於 所以先計算b c的值,應為b 2,c 3,所以這個表示式的值為假,也就是值為0.然後將b c的值賦給a,那麼執行a b c之後,a 0 2 第一個方式不正確,第二個左值不能為表示式,第三個正確,第四個左值不能為表示式 第一個 先計算b c 不相等,為0.然後賦...