求高手解答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,求高手解答,感激不尽!!! 展开
例1: unsigned long a = 10, b, *pA; pA = &a; b = *pA; ( *pA )++;
如果a的地址是2000,那么输出结果是什么,求详解,b = *pA中到底是取出PA指向的地址赋值给b,还是取出PA指向的地址中的内容赋值给b,求高手解答,感激不尽!!! 展开
4个回答
展开全部
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了)
这就是指针的作用,分析问题最好以每个“;”一句一句来分析。
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了)
这就是指针的作用,分析问题最好以每个“;”一句一句来分析。
展开全部
b = *pA是取出PA指向的地址中的内容赋值给b,还有你要输出什么?cout语句呢
追问
感谢帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b=10 a=11
b=*pA 是将pA指向地址中的内容赋值给b
pA = &a pA的值是a的地址
所以b的值为10
*pA指向a,(*pA)++ 使得a自增1变为11
b=*pA 是将pA指向地址中的内容赋值给b
pA = &a pA的值是a的地址
所以b的值为10
*pA指向a,(*pA)++ 使得a自增1变为11
追问
感谢帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
:
正数的补码 与原码相同。
负数的补码 符号位为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。
希望你能理解,祝你进步!
正数的补码 与原码相同。
负数的补码 符号位为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。
希望你能理解,祝你进步!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询