C语言中的main函数参数作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的main函数参数作用相关的知识,希望对你有一定的参考价值。
刚开始学习C语言 看了main函数参数的作用 实有不解。不明白argc和argv的作用 。。。。。求科普!!!!!!!!!!!!!!!!!!!11
在调用可执行程序时,可以通过main函数的参数将命令行的调用参数传递给main函数。
事实上,main()函数既可以是无参函数,也可以是有参的函数。对于有参的形式来说,就需要向其传递参数。
从函数参数的形式上看,包含一个整型和一个指向字符指针的指针。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件(对windows操作系统而言),这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。由系统在启动运行时传递参数。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令参数1参数2....参数nt;
此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。
命令行与main()函数的参数存在如下的关系:
设命令行为:program str1 str2 str3 str4 str5
扩展资料:
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。
也就是说在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)。
参考资料来源:百度百科-main函数
参考技术A 这是命令行参数argc是命令行参数的数量,argv是具体的参数
举个例子:
比如你通过命令行运行一个exe文件,并在后面加上一些参数
c:\test.exe -window - test
然后对于这个test.exe来说,argc就是2,argv[0]和argv[1]分别是“-window”和“- test”
有些软件接受不同参数运行就是通过判断这个做出来的
然后,比如你对一个txt文件点右键,选择打开方式为用test.exe打开
那么这是argc是1,argv[0]就是这个打开的txt文件的路径本回答被提问者和网友采纳 参考技术B argc是参数个数,定义为intargv是字符串数组,存的是参数,定义为char**或者char* argv[]比如你编译好的程序为my.exe在命令行执行 my.exe 1 2 3那argc就是4,argv[0]是"my.exe",argv[1]是"1",argv[2]是"2",argv[3]是"3";
main为主函数,相当于皇帝,只有一个,下面可以有多个子函数,相当于子民 参考技术C 当你要让程序运行的时候,如果想预先(初始化)或者随时改变一些数据
就用参数
main的就是运行时,程序名后面可以直接带的参数.在windows下面不明显,命令行方式,你就容易理解了.
argc是说后面有几个参数,argv是参数.
以后你会明白的.
C语言 main 函数参数 main(int argc, char *argv[])
目录
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
一.main 函数写法
在 C99 标准中定义 main 函数两种正确的写法
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 main 函数参数 main(int argc, char *argv[])
//@Time:2021/07/16 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
int main(void) { /* ... */ }
int main(int argc, char *argv[]) { /* ... */ }
二.main 函数参数简介
/*
参数介绍
argc : main函数参数个数,当参数为void的时,argc=1,默认参数为可执行文件名
argv : 指针数组,分别指向个参数字符串首地址,其中argv[0]指向默认参数
*/
int main(int argc, char *argv[]) { /* ... */ }
默认情况下,argc 值为 1,表示 argv[0] 当前工程可执行文件的文件名;后面的参数从 arg[1] 开始都按顺序存放在字符数组中,argc 数至少是 1 个;
三.使用 main 函数参数
1.打印 main 函数参数
避免控制台程序一闪而过,我们可以使用 **system(“pause”) **等待用户输入后,在结束程序;
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 main 函数参数 main(int argc, char *argv[])
//@Time:2021/07/16 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
#include <stdio.h>
#include <windows.h>
int main(int argc,char *argv[])
{
int ii=0;
// 显示参数的个数
printf("argc is %d\\n",argc);
// 列出全部的参数
for (ii=0;ii<argc;ii++)
{
printf("argv[%d] is %s\\n",ii,argv[ii]);
}
system("pause");
}
/*
输出:
argc is 1
argv[0] is C:\\Users\\Administrator\\Desktop\\mainFunc\\Debug\\mainFunc.exe
请按任意键继续. . .
*/
默认情况下,argc 值为 1,表示 argv[0] 当前工程可执行文件的文件名;
a.直接运行 exe 文件
argc is 1
argv[0] is C:\\Users\\Administrator\\Desktop\\mainFunc\\Debug\\mainFunc.exe
请按任意键继续. . .
b.打开 cmd 命令行窗口执行 exe 文件
c.打开 cmd 命令行窗口执行 exe 文件并设置 main 函数参数
注意:exe 和后面每一个参数之间有空格隔开;
2.使用 main 函数参数
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 main 函数参数 main(int argc, char *argv[])
//@Time:2021/07/16 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Add(int a, int b)
{
printf("%d\\n", a + b);
}
void Mul(int a, int b)
{
printf("%d\\n", a*b);
}
void Sub(int a, int b)
{
printf("%d\\n", a - b);
}
void Div(int a, int b)
{
printf("%d\\n", a / b);
}
int main(int argc, char *argv[])
{
if (argc < 4)
{
printf("输入格式错误,请按照指定格式输入,例如:xxx.exe -a 4 5 \\n");
system("pause");
return 0;
}
int a = atoi(argv[2]);
int b = atoi(argv[3]);
if (strcmp("-a", argv[1]) == 0)
{
Add(a, b);
}
else if (strcmp("-s", argv[1]) == 0)
{
Sub(a, b);
}
else if (strcmp("-m", argv[1]) == 0)
{
Mul(a, b);
}
else if (strcmp("-d", argv[1]) == 0)
{
Div(a, b);
}
system("pause");
return 0;
}
/*
直接执行exe文件会提示:
输入格式错误,请按照指定格式输入,例如:xxx.exe -a 4 5
请按任意键继续. . .
报错是因为我们没有为 main 函数设置输入参数,打开 cmd 窗口设置参数即可!!
*/
注意:exe 和后面每一个参数之间有空格隔开;
三.猜你喜欢
- C 语言 数组下标越界和内存溢出区别
- C 语言 使用指针遍历数组
- C 语言 指针和数组区别
- C 语言 指针数组和数组指针区别
- C 语言 野指针
- C 语言 函数值传递和址传递
- C 语言 函数不定长参数
- C 语言 函数指针
- C 语言 指针函数
- C 语言 回调函数 callback
- C 语言 #pragma once
- C 语言 #include <> 与 #include “” 区别
- C 语言 const 修饰函数参数
- C 语言 const 和 define 区别
- C 语言 #运算符
- C 语言 ##运算符
- C 语言 __VA_ARGS__
- C 语言 ##__VA_ARGS__
- C 语言 函数不定长参数 ##__VA_ARGS__经典案例
- C 语言 va_start 宏
- C 语言 va_end 宏
- C 语言 va_arg 宏
- C 语言 vprintf 函数
- C 语言 va_start / va_end / va_arg 自定义 printf 函数
- C 语言 main 函数
- C 语言 main 函数参数 main(int argc, char *argv[])
未经允许不得转载:猿说编程 » C 语言 main 函数参数 main(int argc, char *argv[])
本文由博客 - 猿说编程 猿说编程 发布!
以上是关于C语言中的main函数参数作用的主要内容,如果未能解决你的问题,请参考以下文章
linux下,在调用main函数之前怎样得到命令行参数argc和argv