※ 引述《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