作者avogau ( 假 装)
看板TransCSI
标题Re: [请益] 一些问题...
时间Thu Apr 16 00:40:37 2009
※ 引述《RJking (RJ-king)》之铭言:
: ※ 引述《OREO5566 (饼乾好吃耶)》之铭言:
: : 1.假设整数X所在的位址为1000,指向双精准度浮点数资料的指标变数P所在的位
: : 址为4000,经过下列运算之後,各选项的答案为何?(32位元)
: : X=10;
: : P=(double*)&X;
: : *P=20;
: : [1]X [2]&X [3]sizeof(X) [4]&P [5]*P [6]sizeof(P)
: : [7]sizeof(P) [8]sizeof(*P) [9]*P-1 [10]*P++
: 1. 20 (不过C::B跟VS2005的结果都是'0',应该跟记忆体分配大小有关)
不对唷
答案是 0 没错
因为 p 是 double
所以*P=20时 20是以ouble方式存入的
根据IEEE754 20 的DOUBLE为 0100000000110100....0
*******这边为51个0
因此存入memory时
1000 1001 1002 1003 1004 1005 1006 1007
00000000 00000000 00000000 00000000 00000000 00000000 00110010 0100000
00 00 00 00 00 00 52 64
^ ^
bit7 bit0
因此 p是 1000~1003
以int角度来说是 0
: 2. 1000
: 3. 4
: 4. 4000
: 5. 20
: 6. 4
: 7. 题目跟6一样...检查一下吧 若是sizeof(&P)则答案是4
: 8. 8
: 9. 19
: 10. 21
: : 2.下列的程式码中,出现什麽问题
: : void main( )
: : {
: : int x=100 ;
: : int *p ;
: : int *q=&x ;
: : *p=*q+x ;
: : }
: 指标p指定值之前尚未初始化,所以指标p没有指向任何记忆体位置,自然不能指定值
: : 3.巢状struct的资料结构,试利用此struct宣告struct变数dataS,并且设定内部资料
: : 如i=20,j=30,写出main程式,叙述此资料设定动作及资料呈现
: : struct ints
: : {
: : int i ;
: : struct int w
: : { int j ; } dataW ;
: : } ;
: 先问"struct int w"这行是不是多一个空白?正确的程式码是不是"struct intw"?
: 以下程式码依据上述程式码修正之後的struct宣告而写:
: int main()
: {
: ints dataS;
: dataS.i = 20;
: dataS.dataW.j = 30;
: cout<<dataS.i<<endl<<dataS.dataW.j<<endl;
: return 0;
: }
: : 4.何谓动态记忆体?c和c++在动态记忆体是如何配置与释放
: 第一小题自己查一下吧...
: 总之就是变数宣告时不先确定相对的记忆体大小
: 等到後续再依程式码决定该变数的记忆体大小
: 第二小题:
: C:malloc() //配置
: free() //释放
: C++:new //配置
: delete //释放
: 用法自己找下吧
--
明天不一定更美
但更美的明天一定会来
^^我们一起共勉之^^!☆★
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.68.135
1F:推 RJking:是这样没错,当初太懒得去转IEEE754所以乾脆说是记忆体配置 04/16 05:16
2F:→ RJking:的关系 只能说出题老师太机车,想要一题就考一堆观念= = 04/16 05:18