C语言main()函数

C语言main()函数

argcargument count

在C或C++程序中,argcargument count的缩写)是一个由程序运行时环境自动提供的整数,用于指示传递给main函数的命令行参数的数量。因此,不需要(也不应该)手动为argc赋值。

argvargument vector

当从命令行运行程序时,操作系统会解析命令行上的参数,计算它们的数量,并将这个数量作为argc的值传递给main函数。同时,操作系统还会创建一个字符指针数组argv,用于存储每个参数的字符串表示,并将这个数组的指针传递给main函数。

示例

以下是一个简要的有参示例(无参就不说了),说明如何在命令行上运行程序并观察argcargv的行为:

  1. 将以下C代码保存到一个名为main.c的文件中:

    c 复制代码
    #include <stdio.h>
    
    int main(int argc, char* argv[]) { //char* argv[]等价于 char** argv
        printf("argc = %d\n", argc);
        for (int i = 0; i < argc; i++) {
            printf("argv[%d] = %s\n", i, argv[i]);
        }
        return 0;
    }
  2. 使用C编译器编译这个文件,例如使用gcc

    bash 复制代码
    gcc -o myprogram main.c
  3. 在命令行上运行生成的可执行文件,并传递一些参数:

    bash 复制代码
    ./myprogram Hello World 1024
  4. 观察输出:

    复制代码
    argc = 4
    argv[0] = ./myprogram
    argv[1] = Hello
    argv[2] = World
    argv[3] = 1024

在这个例子中,argc的值是4,因为程序名(./myprogram)和三个参数(helloworld123)都被计算在内。argv数组包含了这些参数的字符串表示,其中argv[0]是程序名,argv[1]argv[3]是传递的参数。

注意:不需要手动为argc赋值,它是由运行时环境根据传递给程序的命令行参数的数量自动设置的。

相关推荐
峥嵘life5 小时前
Android16 311Y3 EAP-TLS 网络连接失败分析与修复总结
android·开发语言·人工智能·php
mqiqe8 小时前
AgentScope Java Harness:4. 双层记忆系统 让 Agent 拥有真正的“长期大脑“
java·开发语言
gugucoding8 小时前
46. 【Java】JUC并发工具:让并发更简单
java·开发语言
Nebula_g8 小时前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法
for_ever_love__9 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习
依然鸣9 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
byxdaz10 小时前
QT中服务使用
开发语言·qt
库玛西11 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
AC赳赳老秦11 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
caimouse11 小时前
ReactOS 图形系统分析(19):颜色转换对象 — XLATEOBJ(xlateobj.c/h)
c语言·开发语言