程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言的幾個小問題

C語言的幾個小問題

編輯:C語言問答

C語言的幾個小問題

(1)字符串:"\\0211\"xab"的長度為:10
(2)指針S所指字符串的長度為char*s="\\"Name\\Address\n":15
(3)設有語句int a=3;則執行了語句a+=a-=a*a後,變量a的值是:-12
明白人給出詳細解題過程,本人急用,謝謝!

最佳回答:

首先我要告訴你你的第2小題本身就有問題。下面解答你的問題。我在每一個字符後面畫一個*這樣你就知道是哪個字符了。
1。
"\\0211\"xab"
\* 0* 2* 1* 1* "* x* a* b* \0*
10個字符
通常\\表示\,\"表示",他們叫做轉意符,字符串末附一個\0叫結束符。

2。實際上講你這一題編譯器是會報錯的(你這題是書上的題而不是你們實際操作的題吧?)。因為編譯器在讀一行之前會先做語法判斷。判斷你每一行的語法出錯沒有。所以在讀到\\"時\\會被翻譯為\而"會被當做和開頭的"是一對兒的。也就是結束"所以後面的字符就成為了多余的就會出問題。
理論上講如下
"\\"Name\\Address\n"即
"* N* a* m* e* \* A* d* d* r* e* s* s* \n* \0*
15個字符

3。這裡面用到一個叫三目運算符,比方a+=b意思就是說a=a+b.
首先舉例說明假如a=b=c那麼首先a的值是b給出的而b的值是c給出的。所以你要首先確定c的值也就是說要從右往左算。
所以就翻譯你的式子就成了a=a+a=a-a=a*a所以從右往左很容易得出答案。a*a=9;a=a(值為3)-a(剛算出的9)=-6;此時a=-6,a=a+a=-6+-6=-12
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved