看板 TransCSI 關於我們 聯絡資訊
※ 引述《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