c语言main函数有参数 c语言main函数参数路径怎么放到操作系统位置

main函数有参数吗?为什么有?有,下面是我找到的答案
函数的参数用来在函数调用时,往被调用函数传递数据,而main函数在C程序中 , 不被任何函数所调用,那main函数的参数从何处得到数据呢?每一个C程序的执行都是在系统的支持下进行的,main函数是系统执行相就的程序得到“调用”,从系统命令行中得到相应的参数 。
main函数有两个参数,其中第一个参数的类型为整型 , 用于指出命令行中字符串的个数;第二个参数是一个字符指针数组,分别指向命令行中各个字符串,其一般形式为:
main(int argc, char *argv[ ]);其中,变量的名字可以根据程序人员的爱好进行改变 , 但参数的数目及各参数的类型是不可改变的,如有一个程序文件为file_cpy.exe,如果执行时,命令行为:file_cpys_fd_fCR,则参数argc得到值3,而argv[0]、argv[1]、argv[2]分别指向字符串“file_cpy”、“s_f”、“d_f” 。
C语言main函数参数?所谓命令行参数就是这样,假设你编译出来的可执行文件为a.exe,然后你输入指令调用程序的命令是: a b c这样时 , 程序会将输入的指令变成3个字符串,分别是"a","b",和"c",并且通知你可用的字符串个数 。
【c语言main函数有参数 c语言main函数参数路径怎么放到操作系统位置】#includestdio.h
#includestring.h
struct mmm { int num; char name[40]; } me;
void main(int argc,char* argv[]) { int b=0;
me.num=100001; strcpy(me.name,"小明");
if ( argc1 ) {
b=1;
if ( strcmp(argv[1],"-xuehao")==0 ) printf("学号:%d\n",me.num);
else if ( strcmp(argv[1],"-name")==0 ) printf("姓名:%s\n",me.name);
else b=0;
}
if ( b==0 ) printf("命令行未包含有效参数 。\n");
}
C语言中的main函数参数作用在调用可执行程序时,可以通过main函数的参数将命令行的调用参数传递给main函数 。
事实上 , main()函数既可以是无参函数,也可以是有参的函数 。对于有参的形式来说,就需要向其传递参数 。
从函数参数的形式上看,包含一个整型和一个指向字符指针的指针 。当一个C的源程序经过编译、链接后 , 会生成扩展名为.EXE的可执行文件(对windows操作系统而言),这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的 。由系统在启动运行时传递参数 。
在操作系统环境下,一条完整的运行命令应包括两部分c语言main函数有参数:命令与相应的参数 。其格式为:
命令参数1参数2....参数nt;
此格式也称为命令行 。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数 。
命令行与main()函数的参数存在如下的关系:
设命令行为:program str1 str2 str3 str4 str5
扩展资料:
main 函数的返回值类型必须是 int , 这样返回值才能传递给程序的激活者(如操作系统) 。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0;,表示程序正常退出 。不过,c语言main函数有参数我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯 。
也就是说在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常) 。
参考资料来源:百度百科-main函数
C语言深度总结[全面认识main函数传递参数]argc和argv是main函数的形式参数 。这两个形式参数的类型是系统规定的 。如果main函数要带参数 , 就是这两个类型的参数;否则main函数就没有参数 。
坚持使用标准的意义在于:当你把程序从一个编译器移到另一个编译器时,照样能正常运行 。
由于是 int main( ..) 那么当时 应当返回 int 但是return 2.3 ;也能运行正确,这是因为编译器自动转换2.3为int,截断后为return 2;
如果写为 return "abc";那么会报错,error C2440: “return”: 无法从“const char [4]”转换为“int” 。
变量名称argc和argv是常规的名称,当然也可以换成其他名称 。那么,实际参数是如何传递给main函数的argc和argv的呢?我们知道,C程序在编译和链接后,都生成一个可执行文件 。也可以在命令行下带参数执行,命令行执行的形式为:可执行文件名称 参数1 参数2 ... ... 参数n 。可执行文件名称和参数、参数之间均使用空格隔开 。
如果按照这种方法执行 , 命令行字符串将作为实际参数传递给main函数 。具体为:
(1) 可执行文件名称和所有参数的个数之和传递给argc;
(2) 可执行文件名称(包括路径名称)作为一个字符串,首地址被赋给argv[0],参数1也作为一个字符串,首地址被赋给argv[1] , ... ...依次类推 。
字符串arav[i](i=1,...argc-1)表式第 i 个程序参数,标准C 要求argv[argc]是个null指针,但在有些旧时编译器中却不是这样的,argv向量以及它所指向的字符串必须是可以修改的,并且他们的值在程序执行期间不能被编译器或操作系统所修改 。如果编译器并不允许大小写混合的字符串 ,则存储在argv中的字符串必须采用小写形式 。
1.给main函数传递参数只有一种方式,即main(int argc, char *argv[]) 。第一个参数必须int,第二个(如果有的话)必须是char**或char *argv[] 。
2.argc代表传入参数的个数,argv是一个数组,每个元素都是一个char * 。字符串arav[i](i=1,...argc-1)表式第 i 个程序参数,标准C 要求argv[argc]是个null指针 。
3.main函数参数理论上支持“无数”个,且参数在进程内支持修改 。
C语言main主函数带参数是做什么用的在调用可执行程序时,可以通过main函数的参数将命令行的调用参数传递给main函数 。
一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略 。
具体形式如下:
main(){}
被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容 。
在{}里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志 。
扩展资料:
程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数 , 最后由main函数结束整个程序 。在执行程序时,由系统调用main函数 。
main 函数是在程序启动中完成对具有静态存储期的非局部对象的初始化之后被调用的 。它是程序在有宿主 (hosted)环境(亦即有操作系统)中所指定的入口点 。自立程序(启动加载器 , 操作系统内核,等等)的入口点则是由实现定义的 。
参考资料来源:百度百科-C语言函数
关于c语言main函数有参数和c语言main函数参数路径怎么放到操作系统位置的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读