在设计函数过程中,想要函数参数传入一个指针数组,多为字符串数组,在函数形参的设计上有两种思路,具体以下列两种应用场景为说明
一、字符串处理函数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. ", 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.