void 的函式不可回傳數值(編譯錯誤)。無 return 也合法,執行到結尾大括號自動返回。return,否則編譯錯誤。
// 宣告(原型)
ret_type function_name(argtype_1 arg_1, argtype_2 arg_2, ..., argtype_n arg_n);
// 定義
ret_type function_name(argtype_1 arg_1, argtype_2 arg_2, ..., argtype_n arg_n) {
statements;
return ret_type;
}
C++ 程式**必須有 main()**,它是程式入口點。但非所有 C++ 程式都有傳統 main():Windows 程式入口為 WinMain()。C++ Builder GUI 專案隱藏 WinMain(),讓開發者專注介面建立。
32 位元主控台應用程式,C++ Builder 產生預設原型:
int main(int argc, char** argv);
參數從命令列取得:
argc:命令列參數個數(含程式名,至少 1)。argv:字串指標陣列,含每個命令列字串。
// 命令列:grep WM_KILLFOCUS d -i
argc = 4
argv[0] = "C:\cbuilder\bin\grep.exe"
argv[1] = "WM_KILLFOCUS"
argv[2] = "d"
argv[3] = "i"
#include
#include
#pragma hdrstop
int main(int argc, char** argv) {
cout << "argc = " << argc << endl;
for (int i = 0; i < argc; i++)
cout << "Parameter " << i << ": " << argv[i] << endl;
cout << endl << "Press any key to continue...";
getch();
return 0;
}
專案建置後,用 Run | Parameters 設定命令列參數,或在 DOS 提示字元下執行:argstest one two three "four five" six
main();
int main(); // 同上
int main(void); // 同上
int main(int argc, char** argv);
void main();
void main(int argc, char** argv);
// 更多形式...
不需命令列參數時,最基本形式:main() 或 int main()(不指定回傳值時預設回傳 int)。
所有 C++ 內建型別皆可放入陣列。陣列是數值集合。
int myArray[5]; // 配置 5 個 int,共 20 位元組
myArray[0] = -200;
myArray[1] = -100;
myArray[2] = 0;
myArray[3] = 100;
myArray[4] = 200;
C++ 陣列以 0 為基底。簡潔初始化:
int myArray[5] = {-200, -100, 0, 100, 200};
int myArray[] = {-200, -100, 0, 100, 200}; // 省略長度,編譯器自動推導
int mdArray[3][5]; // 15 個 int,共 60 位元組
int x = mdArray[1][1] + mdArray[2][1];
int x=10; int a[x]; 編譯錯誤)。int a[5]; a[5]=10; 合法但災難性(最大索引 4)。越界改寫未知記憶體,極難診斷(久後才崩潰)。int x=10; int* a = new int[x];