在設計函數過程中,想要函數參數傳入一個指針數組,多為字符串數組,在函數形參的設計上有兩種思路,具體以下列兩種應用場景為說明
一、字符串處理函數strsort
從程序設計角度來看,將多個字符串傳遞給函數處理時,因為傳遞的是一維數組,形參的定義比較簡單。例如,函數strsort()可對多個字符串進行排序,函數頭的定義形式如下:
void strsort(char *s[],int n)
形參char *s[]為字符指針數組,將要處理的指針數組的首地址作為實參傳入。形參int n表示要處理的字符串的數量。
二、main函數形參
C/C++語言中的main函數,經常帶有參數argc,argv,如下:
int main(int argc, char** argv) int main(int argc, char* argv[])
下面的程序演示argc和argv的使用:
#include <stdio.h> int main(int argc, char ** argv) { int i; for (i=0; i < argc; i++) printf("Argument %d is %s.\n", i, argv[i]); return 0; }
假如上述代碼編譯為hello.exe,那么運行
hello.exe a b c d e
將得到
Argument 0 is hello.exe. Argument 1 is a. Argument 2 is b. Argument 3 is c. Argument 4 is d. Argument 5 is e.