一个C++语言函数参数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 01:23:05
#include <iostream>
#include <string>
using namespace std;

int main(int argc,char *argv[])
{
string strArr1[]=("Trend","Micro","Soft");
string *pStrArr1 = new string[2];
pStrArr1[0] = "US";
pStrArr1[1] = "CN";
cout<<sizeof(strArr1)<<endl;
cout<<sizeof(string)<<endl;
for(int i=0;i<sizeof(strArr1)/sizeof(string);i++)
cout<<StrArr1[i];
cout<<endl;
for(int j=0;j<sizeof(pStrArr1)*2/sizeof(string);j++)
cout<<pStrArr1[j];

return 0;
}

我的问题:
int main(int argc,char *argv[]) main里面为什么这样写?先定义一个整型变量,再定义一个指针数组,这是什么意思? 在这里面起什么作用?

麻烦各位朋友帮我解释一下,总是到这里看不懂,后生感激不尽.谢谢谢谢!!~

主函数的这两个参数用于在运行这个应用程序时从外部向应用程序传递参数,其中的argc保存了传入程序的参数数量(包含程序路径本身),字符指针数组argv则保存了各个参数,其中,程序路径保存在argv[0]中。例如:

生成的可执行文件是a.exe,它保存在c盘根目录中,执行以下命令:

c:\a.exe hello world

则,argc=3

argv[0]="c:\a.exe"
argv[1]="hello"
argv[2]="world"

char *argv[]

相当于 string argv[]

因为c/c++没有 string 变量 只能用字符数组或者字符指针来实现

而这里需要 string 数组 所以就用字符指针组来实现

其实 char argv[][] 的意思也一样 但这样似乎非法

那个整型变量是指 参数数目 而参数就是通过 argv来传递的

就如楼上举的例子

C函数不能调用main()
main()只能有系统调用,参数当然由系统传递来
然后就想其他C函数那样,main()使用这些参数工作