1樓:匿名使用者
unsigned long a = 10,b,*pa;
pa = &a; // & 為取地址符號,由於a的地址是2000,故pa的值為2000
b = *pa; // * 為取地址為:pa內的值,即 *(2000) = 10,並將這個值存放到b中
// b的地址是系統給的,沒有已知條件,但與本題無關。。
(*pa) ++; // 先算括號內,即是*pa,由上面可以得到10,再10++,所以為11,並將這個值存
// 回地址為2000的地方去,ps,在上面的例子中(*pa)++可以等價為
// (*pa)=(*pa)+1
所以可以得到以下結果
a=11(a的地址是2000,存放的值變了)
b=10(b得到的是值,所以不會改變,)
*pa=11(地址為2000的值,當然是11了)
這就是指標的作用,分析問題最好以每個「;」一句一句來分析。
2樓:匿名使用者
b = *pa是取出pa指向的地址中的內容賦值給b,還有你要輸出什麼?cout語句呢
3樓:
b=10 a=11
b=*pa 是將pa指向地址中的內容賦值給bpa = &a pa的值是a的地址
所以b的值為10
*pa指向a,(*pa)++ 使得a自增1變為11
4樓:匿名使用者
:正數的補碼 與原碼相同。
負數的補碼 符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1
例如 原碼:
7的原碼是0 0000111
-7的原碼是1 0000111
可見原碼無法進行加法計算
反碼:正數:正數的反碼與原碼相同。
負數:負數的反碼,符號位為「1」,數值部分按位取反。
+7= 0 0000111
-7= 1 1111000
補碼:正數:正數的補碼和原碼相同。
負數:負數的補碼則是符號位為「1」,數值部分按位取反後再在末位(最低位)加1。也就是「反碼+1」。
+7= 0 0000111
-7= 1 1111001
計算內部都是用補碼來儲存數值的,所以你這個題的步驟是這樣的:
先將123轉成二進位制數01111011,因為正數補碼和原碼一致,計算機存的是01111011
然後各位取反得10000100,這時第一位變成1,意味著現在表示的是一個負值,現在要求出這個負值是多少,也是按補碼規則,保留符號位,將後面的位取反加1,得11111100,這個值就是-124。
希望你能理解,祝你進步!
求高手解答C 入門問題
斂正雅 這個應該是反碼和補碼的問題吧。首先說幾個概念 正數的補碼 與原碼相同。負數的補碼 符號位為1,其餘位為該數絕對值的原碼按位取反 然後整個數加1 例如 原碼 7的原碼是0 0000111 7的原碼是1 0000111 可見原碼無法進行加法計算 反碼 正數 正數的反碼與原碼相同。負數 負數的反碼...
關於C 的基礎問題求解答,求高手解答C 入門問題!!!
妖刀路過 1.答案不是1,你可以用vc驗證一下,應該是0.66667 2.對於這個問題,你可能沒有理解清楚型別轉換,在win32的前提下,int佔4個位元組,double佔8哥位元組,而你的x y,呼叫了隱式型別轉換,乘法以後的值為double型,所以sizeof以後就為8個位元組 3.可以為前置運...
C 程式設計,求高手解答,C 程式設計求高手解答!!!!
條件語句 main 開關語句 main 這個還比較簡單,所以我覺得的200分比較合適 才5分呀!分數太少沒誠意 c 程式設計求高手解答!define pi 3.1415926 include class shape class circle public shapedouble area class...