现在才明白C++main函数的argc、argv???

C++main函数的argc与argv

  • argc 是 argument count的缩写,表示参数个数(包含可执行程序)
  • argv 是 argument vector 的缩写,表示传入mian函数的参数序列或者指针
#include <iostream>
using namespace std;

int main(int argc,char* argv[]){
    
    
    cout << "argc = " << argc << endl;//打印argc
    for (int i = 0; i < argc;i++){
    
        //打印argv[]
        cout << "argv[" << i << "] = " << argv[i] << endl;
    }
}

在这里插入图片描述

  • argc计算参数个数时也包含了可执行程序的名字并且包含了程序所在的完整路径,如下图,在桌面上执行calculator的a.out程序
  • argv[0]表示的是可执行程序的名字,所以我们给main函数传的参数个数为argc-1个
    在这里插入图片描述

突然想起了shell里面的传入传出参数,有异曲同工之妙

$0 相当于 C/C++语言main函数的 argv[0]
$1$2...  这些称为位置参数(Positional Parameter),相当于 C 语言 main 函数的 argv[1]、argv[2]...
$# 相当于 C/C++ 语言 main 函数的 argc - 1,注意这里的#后面不表示注释
$@ 表示参数列表"$1" "$2" ...,例如可以用在 for 循环中的 in 后面。
$* 表示参数列表"$1" "$2" ...,同上
$? 上一条命令的 Exit Status
$$ 当前进程号
#! /bin/bush
echo "\$0 = $0"

echo "直接打印前三个参数:"
echo "\$1 = $1"
echo "\$2 = $2"
echo "\$3 = $3"

echo "总共有多少个参数: $#"

echo "循环打印参数列表:"
for ARGV in $@;do
    echo $ARGV
done

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44515978/article/details/119788490