-
2018-09-26 10:26:41
在C99标准中定义main函数两种正确的写法
int main(void); int main(int argc, char* argv[]);
常见的不标准写法
void main() main()
这里主要说明带参数的main函数如何使用
int main(int argc, char* argv[]) { int i; for (i=0; i<argc; i++) printf("%d: %s\r\n", i+1, argv[i]); return 0; }
参数介绍
argc : main函数参数个数,当参数为void的时,argc=1,默认参数为可执行文件名
argv : 指针数组,分别指向个参数字符串首地址,其中argv[0]指向默认参数代码输出结果
没有参数默认输出./hello
有参数按照参数顺序输出参数
更多相关内容 -
带参数的的main函数
2018-03-03 18:32:14在main()函数中允许带2个参数,一个为整型argc,另一个是指向字符型的指针数组argv[]。格式: int main(int argc,char *argv[]) 其中整型argc表示命令行中字符串的个数,指针数组argv[]指向命令行中的各个字符串...在main()函数中允许带2个参数,一个为整型argc,另一个是指向字符型的指针数组argv[]。格式:
int main(int argc,char *argv[])
其中整型argc表示命令行中字符串的个数,指针数组argv[]指向命令行中的各个字符串。这两个参数可以用任何合法的标识符命名,但是习惯采用argc和argv。带参数的main()函数一般能在调用其时追加参数,如DOS命令一样。下面程序运行后只输出该可执行文件的路径,即argv[0]中存储的字符串。
#include<iostream> using namespace std; int main(int argc, char* argv[]) { int i; cout << "当前文件的路径:" << argv[0] << endl; for (i = 1; i < argc; i++) { cout << i << "," << argv[i] << endl; } system("pause"); return 0; }
带参数的main()函数是要像DOS命令一样能够根据参数执行。所以在DOS环境下执行该程序。先切换到可执行文件的路径,然后输入testmian adc def
可以看到,用户输入了2个字符串,因此argc的值为2,在字符串数组argv[]中将这两个字符串分别放入argv[1]和argv[2]中,argv[0]存储的是该程序的当前路径。
在DOS下一条完整的运行命令包含2部分:命令与相应的参数。格式为:
命令 参数1 参数2 ...
这种格式也叫命令行,命令行中的命令就是可执行文件的文件名,它后面的参数要用空格分隔,是对命令的进一步补充,即是传递给main()函数的参数。 -
C语言 带参数的main函数的编译运行
2019-05-27 10:39:18C语言中,main函数可以带参数也可以不带参数。 不带参数的main函数格式为: main() //它实际上是 main(void)的简写 C语言中如果miain函数需要带参数,带参数的main函数格式为: main(int argc, char *argv[]) ...这里主要介绍的是C99标准下的C语言main函数形式。C语言中,main函数可以带参数也可以不带参数。
不带参数的main函数格式为:
main() //它实际上是 main(void)的简写
C语言中如果miain函数需要带参数,带参数的main函数格式为:
main(int argc, char *argv[]) //也可写成 main(int argc, char **argv)
其中整型argc表示命令行中字符串的个数,指针数组argv[]指向命令行中的各个字符串。这两个参数可以用任何合法的标识符命名,但是习惯采用argc和argv。
写一个输出参数字符串的程序:
#include<stdio.h> int main(int argc, char* argv[]) { int i; for (i = 1; i < argc; i++) { printf("%s",argv[i]); } printf("\n"); return 0; }
下面介绍一下main函数带参数的程序,调试执行的方法,这里分成使用tcc以及VS2010两种编译环境下的运行。
(1)使用notepad++以及tcc进行编译
将程序代码使用notepad++存为 xx.c 文件,在cmd命令窗口中打开 .c 文件所在的路径,运行代码为:
tcc xx.c -o xx.exe //生成exe文件 xx.exe string //运行exe文件,其中string表示参数字符串
运行方式和结果如下:
(2)使用VS2010进行编译方法一:使用cmd命令窗口进行编译运行
打开VS下的C语言文件的Debug文件目录,也就是对应的C语言应用程序 xx.exe 所在的文件目录,直接运行既可,代码如下:
xx.exe string
运行方式和结果如下:
方法二:直接在VS2010中编译运行如果我们想要不使用cmd命令窗口,同样有办法可以直接在VS软件中进行编译运行,但是这个方法需要每次进行手动的属性设置,就会稍微麻烦一些。
首先我们要手动设置命令参数,具体操作是:项目->参数属性->调试->命令参数。如下图所示:
然后在VS中直接运行既可。运行结果如下:
-
C语言main函数的参数
2019-08-04 07:56:56在我们之前编写的C程序中,main函数是没有参数的,但是在实际开发中,main函数一般都需要参数,没有参数的情况极少。 main函数的参数是从命令提示符下执行程序的时候传入,例如ls 命令。 在以上示例中ls命令...在我们之前编写的C程序中,main函数是没有参数的,但是在实际开发中,main函数一般都需要参数,没有参数的情况极少。
main函数的参数是从命令提示符下执行程序的时候传入,例如ls 命令。
在以上示例中ls命令有两个参数,-l和book1*。
main函数的参数
main函数有三个参数,argc、argv和envp表示。
int argc,用于存放命令行参数的个数。
char *argv[],是个字符串的数组,每个元素都是一个字符指针,指向一个字符串,即命令行中的每一个参数。
char *envp[],也是一个字符串的数组,这个数组的每一个元素是指向一个环境变量的字符指针。
我们把envp放一下,先讲argc和argv。
示例(book101.c)
运行结果
注意几个事项:
1)argc的值是参数个数加1,因为程序名称是程序的第一个参数,即argv[0],在上面的示例中,argv[0]是./book101。
2)main函数的参数,不管是书写的整数还是浮点数,全部被认为是字符串。
3)参数的命名argc和argv是程序员的约定,你也可以用argd或args,但是不建议这么做。
C程序的规范写法
先假设程序执行都是有参数的,也就是说main函数都有参数,那么使用者怎么知道程序的参数个数和含义,记住它?看使用手册?不是,好的程序员会在程序中说明。我们先来看一个例子。
示例(book103.c)
运行程序的时候,如果参数个数相符,运行结果如下:
如果参数个数不符,运行结果如下:
从以上的例子可以看出,如果执行程序的时候参数与设计不符,显示程序的使用说明,说明文字应该包括程序的功能和全部参数的解释,还可以包括作者、联系方式等更详细的信息。
程序的使用说明文字非常重要,有几个原因:1)程序的使用者不一定会写程序,也没必要去查使用手册等资料;2)程序的使用者就算会写程序,也没必要在使用的时候去看源代码,并且,你也不一定想让他看到源代码;3)如果程序的使用者是你自己,时间一长,你也会忘记程序的参数。
当然,这些只是有经验程序员的约定,不是C语言的规定。
envp参数
envp存放了当前程序运行环境的参数。
示例(book105.c)
运行结果
在实际开发中,envp参数的应用很少,各位了解一下就行了。
版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!
如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!
-
VS2013中带参数的main()函数调试
2018-05-15 16:02:191.项目文件右击——>属性。2.在弹出的对话框中,选择调试,然后在命令参数后面输入参数。 -
Go语言之带参数的main函数
2019-10-31 19:47:48下面我们来写一个main函数,里面os.Args是一个[]string类型,在运行main函数的时候,命令行中的参数会被写入到os.Args数据中。 不过这样的参数不能够指定是什么类型,也不可以指定tag是什么,... -
带命令行参数的main函数详解
2017-02-20 14:58:10带命令行参数的main函数详解版权声明 博 主:thunder_fan 声 明:喝水不忘挖井人,转载请注明出处。 联系方式:cllshxz#163dotcom(请自行将邮箱改为正确格式) 说 明:本篇博客参考,豆丁文库的一篇文档,没有找到... -
main函数带有参数
2019-03-03 09:08:26实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc... -
C++之main函数带参数
2018-09-17 20:13:39前言:我们一般使用的main函数不加参数,当加了参数会怎样呢? int main(int argc,char**argv) { .... return 0; } 参数解析: int argc: 英文名为arguments count(参数计数) char** argv: 英文名为arguments value... -
VS2015中main函数带参数运行
2020-07-25 17:27:21在VS2015中运行带参数的main函数 #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { printf("参数个数:%d\n", argc); for (int i = 0; i < argc; ++i) { printf("第%... -
C语言main函数参数详解
2020-12-10 16:27:29main函数参数 一共有三个: 1.int argc 整型变量 2.char *argv[] 字符指针的数组,通俗一点就是字符串数组,每个元素都是字符串 3.char *envp[] 字符串数组 这三个东西再怎么神秘,也只是函数参数,只不过是main函数... -
main函数的参数解析
2018-05-09 20:24:31}其实main函数有三个参数: 第一个参数:argc是个整型变量,表示命令行参数的个数(含第一个参数)。 第二个参数:argv是个字符指针的数组,每一个元素一个字符指针,指向一个字符串。这些字符串就是命令行中的每一... -
main函数传入参数
2018-01-10 20:58:58其实main函数是可以向其传递参数的, int main(int argc, char** argv)或者int main(int argc, char* argv[]),其中argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。 例如 ./uarttest /dev/tty0 /... -
带参数的main函数,应该怎样运行呢
2014-08-18 11:41:39关于给main函数传递参数问题!!!在Linux环境下, 一个程序main函数有参数,举报|2013-06-08 16:22epdc147 | 分类:C/C++ | 浏览550次那么linux命令行运行这程序时, 怎么给main函数传递参数。 例如 程序名... -
main函数的参数的含义
2018-04-24 17:05:34链接2 加qq1126137994 微信:liu1126137994 一起学习更多技术!!! 最近学习服务器网络编程...下面是一个带参数的main函数! #include <iostream.h> int main(int argc,char *argv[]) { for(... -
c语言main函数参数问题
2020-02-11 14:18:47我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv... -
main函数参数规范
2020-12-03 13:45:26main函数参数规范 给main函数传递参数,非常容易,而且每个人都有自己的编写方式; 这里介绍一下标准C库的getopt规范,该规范定义了两类参数:短参数和长参数 #include <unistd.h> #include <getopt.h> ... -
main函数的参数和可变参数列表
2018-04-28 17:47:24一.main函数的参数解析 一般来说,我们写main函数,就定义main(),它的参数部分看似没有,实际上,main函数也是有参数的,只是在我们写时省略了。 main函数的参数由三部分组成,分别是argc(int型,表示命令行参数... -
main函数的参数传递赋值
2016-12-29 15:55:21实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还 -
C++main函数及参数
2019-03-27 10:09:55转载自:... C++ main()函数及其参数 1、首先,想想C/C++在main函数之前和之后会做些什么? 我们看看底层的汇编代码: __start: : init stack; init heap; open stdin; open stdou... -
Python教程(9)--如何写main()函数
2019-03-06 11:02:36每个程序员在学习编程的过程中,肯定没少写过main()函数,Python程序员也不例外。本文为大家分享Python之父Guido van Rossum推荐的函数写法,可以大大提高这个函数的灵活性。 一般来说,Python程序员可能是这样写... -
【浅谈】main函数的三个参数
2018-05-08 15:43:55【浅谈】main函数的参数 我们平时使用main函数时,在main函数参数这一栏常常省略不写,或者填上(void)。那么今天我们来看看main函数的参数。 main函数的参数有哪些? 在我们写好一个main函数框架后按... -
C语言-----有参数的main函数
2018-04-18 19:18:25我们学习C语言的时候,用到的第一个函数应该就是main函数了吧,大多数情况下看到的都是没有参数的int main(void),今天我们来深入解析一下有参数并且带有三个参数的main函数。编译器为vs2013。int main(int argc,... -
四、Idea下运行main函数传入参数
2019-01-16 12:04:17 -
深度剖析c语言main函数---main函数的参数传递
2018-07-10 00:20:38在上文中,我们主要讲了c语言main函数的返回值问题,本文主要将main函数的参数传递。 main函数传参 首先说明的是,可能有些人认为main函数是不可传入参数的,但是实际上这是错误的。main函数可以从命令行获取... -
关于main函数的传入参数的问题
2018-03-16 20:41:28main函数的两个传入参数即int main(int argc, char *argv[])其中argc为一个整数,表示程序传入参数的个数,其英文全称也即是argument_count,简称为了argc。而argv为一个存放参数值的字符串数组,其英文全称argument_... -
C++main函数中的形式参数
2018-01-24 09:43:29C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程 ...C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char... -
Python main函数
2021-04-26 17:26:09Python main函数Python main函数教程Python 中的 main() 函数只有当该 Python 脚本直接作为执行程序时才会执行,当该 Python 脚本被作为模块被导入时,其中的 main() 函数将不会被执行。这是由于两方面原因,一方面... -
C/C++__带参数的main函数
2015-07-27 18:13:10main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv) C语言... -
C语言中的main函数以及main函数是如何被调用的
2021-05-21 05:24:13main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是:int main(int argc, char *argv[]);其中argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组。当内核执行C程序时...