深入Main函数中的参数argc,argv的使用详解_C 语言

C/C++语言中的main函数,经常带有参数argc,argv,如下:

复制代码 代码如下:

int main(int argc, char** argv)

这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入到 hello.exe 文件所在目录) 运行命令为:

复制代码 代码如下:

hello.exe Shiqi Yu 

下面的程序演示argc和argv的使用:

复制代码 代码如下:

#include <stdio.h>
int main(int argc, char ** argv)
{
 int i;
 for (i=0; i < argc; i++)
  printf("Argument %d is %s.\n", 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.

运行:

复制代码 代码如下:

hello.exe lena.jpg

将得到

复制代码 代码如下:

Argument 0 is hello.exe.
Argument 1 is lena.jpg.

时间: 2024-10-22 16:14:06

深入Main函数中的参数argc,argv的使用详解_C 语言的相关文章

C语言中操作进程信号的相关函数使用详解_C 语言

C语言signal()函数:设置信号处理方式头文件: #include <signal.h> 定义函数: void (*signal(int signum, void(* handler)(int)))(int); 函数说明:signal()会依参数signum 指定的信号编号来设置该信号的处理函数. 当指定的信号到达时就会跳转到参数handler 指定的函数执行. 如果参数handler 不是函数指针, 则必须是下列两个常数之一: 1.SIG_IGN 忽略参数signum 指定的信号. 2.

C++中求组合数的各种方法总结详解_C 语言

[问题]      组合问题 问题描述:找出从自然数1.2.... .n中任取r个数的所有组合.例如n=5,r=3的所有组合为: 1,2,31,2,4 1,3,4 2,3,4 1,2,5 1,3,5 2,3,5 1,4,5 2,4,5 3,4,5 用程序实现有几种方法: 1)穷举法 程序如下[程序]#include<stdio.h>const int n=5,r=3;int    i,j,k,counts=0; int main(){     for(i=1;i<=r ;i++)    

VC++中进程与多进程管理的方法详解_C 语言

本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考.具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行.子进程的创建与结束等作了较详细的阐述. 关键词: VC++6.0:进程:环境变量:子进程 进程 进程是当前操作系统下一个被加载到内存的.正在运行的应用程序的实例.每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈.堆分

深入c++中临时对象的析构时机的详解_C 语言

c++中,临时对象一旦不需要,就会调用析构函数,释放其占有的资源:而具名对象则是与创建的顺序相反,依次调用析构函数. c++源码: 复制代码 代码如下: class X  {public:   int i;   int j;   ~X() {}   X() {} }; int main() {    X x1;    X();    x1.i = 1;    X x2;     } 对应的汇编码: 复制代码 代码如下: _main    PROC ; 11   : int main() {   

解析C++中四种强制类型转换的区别详解_C 语言

C++的四种强制类型转换,所以C++不是类型安全的.分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型.那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换.C++中风格是static_cast<type>(content).C++风格的强制转换其他的好处是,它们能更清晰的表明它们要干

C++中赋值运算符与逗号运算符的用法详解_C 语言

赋值运算符 赋值符号"="就是赋值运算符,它的作用是将一个数据赋给一个变量.如"a=3"的作用是执行一次赋值操作(或称赋值运算).把常量3赋给变量a.也可以将一个表达式的值赋给一个变量.赋值过程中的类型转换 如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时会自动进行类型转换. 1)  将浮点型数据(包括单.双精度)赋给整型变量时,舍弃其小数部分. 2)  将整型数据赋给浮点型变量时,数值不变,但以指数形式存储到变量中. 3) 将一个double型数据

C语言中堆空间的生成与释放详解_C 语言

堆空间的分配和释放 #include <stdlib.h> malloc.calloc.realloc.free malloc void *malloc(size_t size); 功能:在堆中分配 size 字节的连续空间 参数:size_字节数 返回值:成功返回分配空间的首地址,失败返回 NULL  free void free(void *ptr); 功能:释放由 malloc.calloc.realloc 分配的空间 参数:ptr_空间的首地址 返回值:无 注意: 1.每个空间只能释放

编程c语言-CC语言中的main函数中的参数

问题描述 CC语言中的main函数中的参数 就是int argc char *argv[ ] 这个是什么意思,怎么样进行传参的,求大神指点迷津... 解决方案 C编译器允许main()函数没有参数,或者有两个参数(有些实现允许更多的参数,但这只是对标准的扩展).这两个参数,一个是int类型,一个是字符串类型.第一个参数是命令行中的字符串数.按照惯例(但不是必须的),这个int参数被称为argc(argument count).大家或许现在才明白这个形参为什么要取这么个奇怪的名字吧,呵呵!至于英文

基于c++中的默认拷贝函数的使用详解_C 语言

<c++编程思想>上说一个类如果没有拷贝函数,那么编译器就会自动创建一个默认的拷贝函数.下面就让我们看一下真实的情况. 首先看一个简单的类X,这个类没有显示定义拷贝构造函数. c++源码如下: 复制代码 代码如下: class X {private:    int i;    int j;}; int main() {    X x1;//先定义对象x1    X x2 = x1;//将x1拷贝给x2} 下面是其汇编代码: 复制代码 代码如下: _main    PROC ; 7    : i