argc & argv

1. English Explanation

argc

  • Stands for: Argument Count
  • Meaning: The number of command-line arguments passed to the program.
  • Type: int (integer)
  • Note: argc is at least 1, because the program name itself counts as the first argument.

argv

  • Stands for: Argument Vector
  • Meaning: An array of strings that stores all command-line arguments.
  • Type: char *argv[] (or char **argv)
  • argv[0] = the program name
  • argv[1], argv[2]... = the actual arguments you input.

Simple Rule

argc = how many arguments; argv = what the arguments are.


2. 中文解释

argc

  • 全称:Argument Count
  • 含义:命令行参数的个数
  • 类型:整数 int
  • 特点:至少是 1,因为程序名本身也算一个参数。

argv

  • 全称:Argument Vector
  • 含义:存储所有命令行参数字符串数组
  • 类型:char *argv[]
  • argv[0] = 程序名
  • argv[1]argv[2]... = 你输入的实际参数

简单记忆

argc = 有几个参数;argv = 参数具体是什么。


3. Code Example (Standard main function)

c 复制代码
#include <stdio.h>

// The full main function with command line arguments
int main(int argc, char *argv[])
{
    // Print how many arguments
    printf("Total arguments (argc): %d\n", argc);

    // Print all arguments
    for (int i = 0; i < argc; i++)
    {
        printf("argv[%d] = %s\n", i, argv[i]);
    }

    return 0;
}

4. How to Run & Test

Compile:

bash 复制代码
gcc main.c -o myapp

Run with arguments:

bash 复制代码
./myapp hello 123 test

Output

复制代码
Total arguments (argc): 4
argv[0] = ./myapp
argv[1] = hello
argv[2] = 123
argv[3] = test

5. Summary Table

Name Full Name Chinese Meaning
argc Argument Count 参数个数 命令行参数的总数量(整数)
argv Argument Vector 参数向量 存储所有参数的字符串数组

最直白总结

  • argc = 你在终端输了几个词(包括程序名)
  • argv = 把你输的词存成字符串数组
  • argv[0] 永远是程序自己的名字
相关推荐
春风解人意2 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
神仙别闹3 小时前
基于 C++ 实现两个有序链表序列的交集
java·c++·链表
是隼人5 小时前
buuctf-pwn inndy_echo(32位fmt)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
hansang_IR5 小时前
【题解】[APIO2023] 赛博乐园 / cyberland
c++·算法·图论
落羽的落羽5 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
刚入门的大一新生5 小时前
Linux-进程控制
linux·运维·服务器·c++
刃神太酷啦6 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
喜欢吃燃面9 小时前
深入 C++ STL:从 unordered_set与unordered_map到底层哈希表的原理与实现
数据结构·c++·散列表
FlightYe9 小时前
音视频修炼之基础理论(五):AAC格式与解析
android·linux·c++·音视频·aac
ShineWinsu10 小时前
对于MySQL:数据库的操作的解析
linux·数据库·c++·mysql·面试·笔试·库的操作