C++学习记录(一):int main(int argc,char* argv[]) 的含义和用法

本文详细介绍了C++程序中main函数的argc和argv参数的使用,以及envp参数如何获取系统环境变量。通过实例展示了如何读取命令行参数并输出,同时解释了argv数组中各元素的含义,例如argv[0]为程序路径,argv[1]及以后为用户输入的参数。此外,还展示了如何通过envp获取环境变量并打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文简单记录下C++学习过程
argc是命令行总的参数个数;
argv[]是指针数组,存放的是命令行用户输入的参数;
    argv[0] 指向程序运行的全路径名
    argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
    argv[2] 指向执行程序名后的第二个字符串
    …
    argv[argc]为NULL。
比如F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE:

int main(int argc, char* argv[])
{
   int i;
   for (i = 0; i<argc; i++)
   cout<<argv[i]<<endl;
   cin>>i;
   return 0;
}

执行时敲入 :
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE aaaa bbb ccc ddd
输出如下:
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE
aaaa
bbb
ccc
ddd
再比如test.cpp:

#include <stdio.h>//#包含<stdio.h>
 
int  main( int  argc, char * argv[])     //整数类型主函数(整数类型统计参数个数,字符类型指针数组指向字符串参数)
{
     printf ( "%d\n" ,argc);            //格式化输出
     while (argc)                     //当(统计参数个数)
         printf ( "%s\n" ,argv[--argc]);    //格式化输出
     return  0;                       //返回0;正常退出
}

编译生成的文件为test.exe。
在命令行键入:
test.exe test hello
得到的输出结果为:

  3
  hello
  test
  test.exe

由此可知,char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数argv[]参数,数组里每个元素代表一个参数,arg[0]通常指向程序的可执行文件的文件名,argv[1]指向test,argv[2]指向hello。
对于int main(int argc, char *argv[], char *envp[]), char *envp[] 相对来说用得比较少,它是用来取得系统的环境变量的。env[]的每一个元素都包含ENVVAR=value形式的字符串,其中ENVVAR为环境变量,value为其对应的值。
比如:

#include <stdio.h>
int main(int argc, char *argv[], char *envp[])
{
   int i;

   printf("You have inputed total %d argments\n", argc);
   for(i=0; i<argc; i++)
   {
      printf("arg%d: %s\n", i, argv[i]);
   }

   printf("The follow is envp :\n");
   for(i=0; *envp[i]!='\0'; i++)
   {
      printf("%s\n", envp[i]);
   }
   return 0;
}

输出如下:

D:>argtest this is a test programe of main()'s argments

You have inputed total 9 argments
arg0 : D:\TC\NONAME.EXE
arg1 : this
arg2 : is
arg3 : a
arg4 : test
arg5 : programe
arg6 : of
arg7 : main()'s
arg8 : argments
The follow is envp :
TMP=C:\WINDOWS\TEMP
TEMP=C:\WINDOWS\TEMP
PROMPT= p p pg
winbootdir=C:\WINDOWS
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
COMSPEC=C:\WINDOWS\COMMAND.COM
SBPCI=C:\SBPCI
windir=C:\WINDOWS
BLASTER=A220 I7 D1 H7 P330 T6
CMDLINE=noname this is a test programe of main()'s argments
相关资源:
1.https://www.cnblogs.com/avril/archive/2010/03/22/1691477.html
2.https://blog.youkuaiyun.com/dgreh/article/details/80985928?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-12.base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-12.base

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值