首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 函數規則全攻略:參數、返回值、main() 與陣列

     編輯:關於C++

函數設計鐵律

規則說明
參數任意多,返回值至多一個需多返回值用結構體/引用/指標
返回 void 不能回傳數值但可寫 return; 提前離開
宣告有返回型別,函數體必須 return 值否則編譯錯誤
參數傳遞三式:值、指標、引用引用是 C++ 新增,兼具效率與語法簡潔

函數宣告 vs 定義

// 宣告(原型):僅告知介面
int multiply(int, int);
void showResult(int);

// 定義:實作邏輯
int multiply(int x, int y) {
    return x * y;
}

宣告可僅列型別,但建議加參數名增強可讀性:int multiply(int first, int second);

main():程式入口的特殊形態

標準形式

int main(int argc, char** argv) {
    // argc: 參數個數(含程式名)
    // argv: 字串指標陣列
}

實戰:命令列參數解析

// 執行:argstest one two three "four five" six
int main(int argc, char** argv) {
    cout << "argc = " << argc << endl; // 6
    for (int i = 0; i < argc; ++i)
        cout << "argv[" << i << "] = " << argv[i] << endl;
}

輸出:

argv[0] = argstest.exe
argv[1] = one
argv[2] = two
argv[3] = three
argv[4] = four five
argv[5] = six

main() 合法變體多達 6 種(void main() 非標準但常見),推薦標準 int main(int argc, char** argv)。

陣列:固定大小的連續記憶體

一維陣列

int myArray[5] = {-200, -100, 0, 100, 200}; // 初始化列表
int result = myArray[3] + myArray[4]; // 300
  • 索引從 0 開始,myArray[4] 為最後元素。
  • 大小必須為編譯期常數(C++ 標準),int n; int a[n]; 非法(C99/VLA 除外)。
  • 超出邊界 未定義行為:可能崩潰、靜默破壞資料、延遲爆炸。

多維陣列

int mdArray[3][5]; // 3列5行,共15個int,60 bytes
int x = mdArray[1][1] + mdArray[2][1];

記憶體按行優先連續排列。

動態陣列:new/delete 配對

int n = 10;
int* dynArray = new int[n]; // 堆上分配
// 使用...
delete[] dynArray; // 必須用 [] 釋放陣列

堆陣列大小可由變數決定,但務必手動釋放,否則記憶體洩漏。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved