從堆記憶體中獲取乙個整型陣列,賦值後並列印出來。
#include
using
namespace std;
void
main()
// 分配記憶體空間
for(
int i=
0;i)
p[i]=0
; cout<<
"output the array : "
0;i) cout<<<
" "
; cout
p;// 釋放記憶體空間
}
1.改進該程式,將動態分配陣列及其初始化的操作封裝成函式。
思考以下程式為什麼給p動態陣列分配記憶體空間失敗?
#include
using
namespace std;
void
allocate
(int
*pt,
int len)
;void
main()
void
allocate
(int
*pt,
int len)
// 分配記憶體空間
for(
int i=
0;i)
pt[i]=0
;}
2.使用指標做函式返回值,將被調函式執行時動態開闢的記憶體塊首位址返回給主程式
#include
using
namespace std;
int*
allocate
(int len)
;void
main()
int*
allocate
(int len)
// 分配記憶體空間
for(
int i=
0;i)
pt[i]=0
;return pt;
}
3.使用二級指標做函式形參,使其指向實參指標,通過形參指標間接的操作實參指標,使實參指標指向被調函式執行時動態開闢的記憶體塊
#include
using
namespace std;
void
allocate
(int
**pt,
int len)
;void
main()
void
allocate
(int
**pt,
int len)
// 分配記憶體空間
for(
int i=
0;i*pt)
[i]=0;
}
4.以上方法的缺點是程式顯得不自然,可讀性不好,使用引用做形參,使形參是實參指標的別名,通過形參操作實參指標,程式更自然,可讀性更好
#include
using
namespace std;
void
allocate
(int
*&pt,
int len)
;void
main()
void
allocate
(int
*&pt,
int len)
// 分配記憶體空間
for(
int i=
0;i)
pt[i]=0
;}
5.採用模組化思想,將以上程式的其他功能也封裝成函式,注意函式定義和函式呼叫時引數的設定
#include
using
namespace std;
void
allocate
(int
*&pt,
int len)
;void
output
(int
*&pt,
int len)
;void
main()
void
allocate
(int
*&pt,
int len)
// 分配記憶體空間
for(
int i=
0;i)
pt[i]=0
;}void
output
(int
*&pt,
int len)
6.給以上程式完善得實用些,增加輸入功能
#include
using
namespace std;
void
allocate
(int
*&pt,
int len)
;void
output
(int
*&pt,
int len)
;void
input
(int
*&pt,
int len)
;void
main()
void
allocate
(int
*&pt,
int len)
// 分配記憶體空間
for(
int i=
0;i)
pt[i]=0
;}void
output
(int
*&pt,
int len)
void
input
(int
*&pt,
int len)
cout<}
C 對C的擴充
int a int b a 宣告b是乙個整型變數a的引用變數 型別可以被 過載 霧 includeusing namespace std template 函式模板 t max t a,t b,t c int main 內建函式是在編譯時,將所呼叫函式的 嵌入到 主函式中。inline int ma...
1 3 C 對C的擴充
asm bool true false wchar t namespace using class public protected private friend this inline virtual throw try catch new delete explicit mutable expo...
《C 程式設計教程》 C 對C語言的擴充
c 型別轉換符一共有四種 static cast expression const cast expression dynamic cast expression reinterpret cast expression 1 static cast 最常用的型別轉換操作符,它主要執行非多型的轉換,用於...