求高手解答C 入門問題

時間 2022-04-02 12:20:13

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...