作者RJking (RJ-king)
看板TransCSI
标题Re: [请益] 一些问题...
时间Wed Apr 15 22:11:02 2009
※ 引述《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',应该跟记忆体分配大小有关)
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: 122.117.92.133