求高手解答C++入门问题!!!

是关于指针的:例1:unsignedlonga=10,b,*pA;pA=&a;b=*pA;(*pA)++;如果a的地址是2000,那么输出结果是什么,求详解,b=*pA中... 是关于指针的:
例1: unsigned long a = 10, b, *pA; pA = &a; b = *pA; ( *pA )++;
如果a的地址是2000,那么输出结果是什么,求详解,b = *pA中到底是取出PA指向的地址赋值给b,还是取出PA指向的地址中的内容赋值给b,求高手解答,感激不尽!!!
展开
 我来答
chp19860820
2011-03-10 · TA获得超过921个赞
知道小有建树答主
回答量:750
采纳率:0%
帮助的人:560万
展开全部
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了)
这就是指针的作用,分析问题最好以每个“;”一句一句来分析。
wangbin45623
2011-03-10 · TA获得超过710个赞
知道小有建树答主
回答量:1216
采纳率:0%
帮助的人:477万
展开全部
b = *pA是取出PA指向的地址中的内容赋值给b,还有你要输出什么?cout语句呢
追问
感谢帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
出色且纯良丶小雀29
2011-03-10 · TA获得超过1167个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:302万
展开全部
b=10 a=11
b=*pA 是将pA指向地址中的内容赋值给b
pA = &a pA的值是a的地址
所以b的值为10
*pA指向a,(*pA)++ 使得a自增1变为11
追问
感谢帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bbgowl
2011-03-10
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部

正数的补码 与原码相同。
负数的补码 符号位为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。
希望你能理解,祝你进步!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式