C语言---main函数的实现

C语言:带参数的main函数实现文件复制 带参数的main函数首次出现是在指针部分,利用设置处的debug进行参数预定。 之后运行会有参数显示。 以下代码会出现纰漏,望各位大佬指点! #include<stdio.h> int main(int argc,char *argv[]) { char ch; FILE *fp1,*fp2; fp1=fopen(*(argv+1),"rb"); if(fp1==NULL) { return 0; } fp2 = fopen(*(argv+2),"wb"); if( 阅读详情

main()函数的相关知识

main函数其实是有参数的:
int main(int argc , char* argv[],char* envp[])
这里有三个参数 :
第一个:argc是个整形变量,表示命令行参数的个数(含第一个参数,就是含.exe的字符)
第二个:argv是个字符指针的数组,每个元素是一个字符指针,指向一个字符串,这些字符串就是命令行中的每一个参数
第三个:envp是字符指针的数组,数组的每一个原元素是一个指向一个环境变量(字符串)的字符指针

int main(int argc, char* argv[], char* envp[])
{
    int i=0;
    for(i=0; i<argc; i++)
    {
        printf("%s\n",argv[i]);
    }
    return 0;
}

这里的输出结果是可执行程序的.exe文件的路径
在argv数组的最后一个元素存放的是NULL,这是argv数组的结束标志

int main(int argc,char* argv[],char* envp[])
{
    int i=0;
    while(envp[i] != NULL)
    {
        printf("%s\n",envp[i]);
        i++;
    }
    return 0;
}

在这里输出的结果是环境变量
envp数组的最后一个元素也存放的是NULL指针
题目
1.使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
例如:命令行参数输入:test.exe -a 1 2
执行1+2输出3

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
//加法
int add(int a, int b)
{
    return a + b;
}
//减法
int sub(int a, int b)
{
    return a - b;
}
//乘法
int mul(int a, int b)
{
    return a*b;
}
//除法
int div(int a, int b)
{
    return a / b;
}
int main()
{
    int x,  y;
    int input = 1;
    int ret = 0;
    int(*p[5])(int x, int y) = { 0, add, sub, mul, div };//转移表
    while (input){
        printf("************************************\n");
        printf("  1:add                    2:sub    \n");
        printf("  3:mul                    4:div    \n");
        printf("************************************\n");
        printf("请选择:");
        scanf("%d", &input);
        if ((input<=4 && input>=1)){
            printf("输入操作数:");
            scanf("%d %d", &x, &y);
            ret = (*p[input])(x, y);
        }
        else

            printf("输入有误\n");
            printf("ret=%d\n", ret);
        }
    getchar();
    return 0;
}

运行结果如下:
这里写图片描述

【C语言】使用main函数的参数,实现一个整数计算器 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数, 第一个参数“ - a”选项执行加法,“ - s”选项执行减法,“ - m”选项执行乘法,“ - d”选项执行除法,后面两个参数为操作数。 例如:输入test.exe - a 1 2 ,执行1 + 2输出3。 阅读详情

相关推荐

C语言的main函数到底怎么写的【完整版】:从代码实现到功能解析

需要注意的是,虽然这两个参数在定义时没有指定具体的大小,但是它们都是由系统在程序启动时分配的内存空间,并与程序的生命周期绑定。除了上面提到的两个参数外,main函数还可以包含一个可选的第三个参数,它表示程序启动时操作系统传递给程序的环境变量。main函数是C语言程序中一个非常重要的函数,它是程序执行的入口点。本文将会从C语言的语法和实现的角度,详细介绍main函数的编写方法及其功能解析。通过本文的介绍,相信大家已经对main函数的编写方法和使用有了更加深入的理解。需要注意的是,在使用。

pytorchCode的博客 759

巧妙方法教你实现多种main()

截止到此,我们了解了整个main()函数的调用过程,但是,仍然没有回答二哥的问题,main()是如何实现有参和无参两种方式的,其实说白了,在标准中,main()只有一种声明方式,即有参方式。但是,作为一个开发老油条,也仅仅知道是这样做的,当看到二哥提出这个问题的时候,第一反应是重载,但是大家都知道C语言是不支持重载的,那么有没有可能使用的是默认参数呢?从上述gdb信息,我们看出main()位于栈顶,显然,我们的目的是分析main()的调用堆栈信息,而这种main()在栈顶的方式显然不足以解答我的疑问。

Free雅轩的博客 1548

main函数源码

main函数源码-战舰开发板,可以让那些需要写MAIN函数的工程师借鉴

【Java中的main方法在Kotlin中的多种实现方式详解】

Java中的main方法在Kotlin中的多种实现方式详解

shiruiyiruo的博客 1553

实战解析:利用Wireshark解密QQ通信协议

本文提供了一份利用Wireshark工具分析QQ通信协议的实战指南。文章详细介绍了从环境准备、捕获数据包到解析协议层的完整流程,重点演示了如何识别QQ号码字段、观察加密数据特征以及区分不同通信类型(如文本、文件传输)。通过此实践,读者可以深入理解网络分层模型和现代应用加密通信机制,提升网络协议分析与安全诊断能力。

weixin_29210727的博客 407

Audio2Face进阶玩法:结合LiveLink在UE5中实现MetaHuman全身动画+语音驱动(保姆级配置指南)

本文提供了一份详尽的保姆级教程,指导如何将NVIDIA Audio2Face与Unreal Engine 5的LiveLink功能结合,实现驱动MetaHuman数字人面部表情的同时,无缝融合身体动画。文章详细讲解了从环境准备、插件部署、基础面部驱动测试,到动画蓝图高级配置与多数据流融合的全流程,并分享了性能优化与问题排查的实战经验,旨在帮助创作者打造表情与肢体动作协调统一的生动数字人。

q9w8e7r6t5的博客 196

【C语言进阶剖析】32.C语言中的 main 函数与命令行参数

文章目录 一、main 函数的概念 二、main 函数的本质 三、main 函数的参数 四、main 函数一定是程序执行的第一个函数吗? 五、小结 一、main 函数的概念 C语言中 main 函数称之为主函数 一个C程序是从 main 函数开始执行的 二、main 函数的本质 main 函数是操作系统调用的函数 操作系统总是将 main 函数作为应用程序的开始 操作系统将 main 函数的返回值作为程序的退出状态 下面看一下 main 函数的返回值: ...

老胡的博客 3903

数字IC后端层次化Hierarchical Flow子系统Sub-System模块 block partition和pin assignment细节盘点

数字IC后端培训教程之Hierarchical Flow子系统block partition和pin assignment详细教程

weixin_37584728的博客 1604

C语言main函数及库函数介绍

每个C语言程序不管有多少行代码,都是从main函数开始执行的,main函数是程序的入口,main函数也被叫做: 主函数。 ● main函数是程序的入口 ● main函数有且仅有一个 ● 即使一个项目中有多个.c文件,但是只能有一个main函数(因为程序的入口只能有一个)

m0_62183318的博客 6621

高通AI Engine SDK(QNN)使用教程(环境配置、模型转换、量化、推理、分析)

高通AI Engine使用教程

weixin_51031772的博客 1万+

Cadence SIP Layout 简单教程-第一章

以摄像头模组软硬结合板为例,描述layout的整个完整过程,从而掌握基本技能。 第一章 准备工作 第一节 原理图不用说layout前需要绘制原理图,原理图不在本文讨论范围内,所以列为准备工作。 需要特别说明的是,绘制原理的最终目的是导出网络表,网络表中的重要参数footprint是让layout软件选择正确封装的关键,所以这里讲解一下原理图设置footprint的位置。在原理图中双击零件,...

whp1920的博客 1万+

c语言里主函数指什么,C语言里的主函数是什么

main(),在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。具体形式如下:main(){ }被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号...

weixin_42505252的博客 1万+

STC8单片机低功耗延时优化实践:从循环等待到定时唤醒

本文深入探讨了STC8单片机低功耗延时优化的核心方法,即利用掉电唤醒定时器(WKT)替代传统的循环等待,实现从“空转耗电”到“定时唤醒”的转变。通过实战代码演示了如何编写低功耗延时函数,将待机电流从mA级降至μA级,并分析了精度、唤醒时间等关键权衡点,为电池供电的物联网设备提供了有效的续航优化方案。

pea55的博客 324

C语言 main函数递归实现 棱型星星

#include <stdio.h> int iLine = 1; int main(void) { printf("%*s \n", 7 - (iLine>4 ? iLine - 4 : 4 - iLine), "*******" + 2 * (iLine>4 ? iLine - 4 : 4 - iLine)); if (++iLine != 8) ma...

qq_42577465的博客 521

近五年体内微/纳米机器人赋能肿瘤精准治疗综述:以 GBM 为重点

摘要 微/纳米机器人在实体瘤治疗领域展现出突破性潜力,通过主动运动能力解决传统纳米药物递送效率低、渗透不足等核心问题。2021-2025年间形成三条技术路线:1) 磁驱、声驱等运动增强递送实现深层渗透;2) 与免疫治疗融合实现原位免疫唤醒;3) 针对胶质母细胞瘤开发跨屏障递送系统。研究重点从单一运动性能转向"运动-分布-疗效"的系统评价,需建立标准化指标评估运动学参数、肿瘤分布均匀性和安全性。未来挑战在于临床转化的可制造性、闭环操控及生物相容性优化,特别是对血脑屏障穿透等复杂场景的系统集

AllenLV的博客 5119

YOLO26改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 209

C语言---函数(main,缺省参数用宏替换实现)

函数调用的形式: 函数名(实参1,实参2,实参3 ,… ,实参n) 实参可以是具有确定值的常量、变量、表达式、函数等 本题中: func(rec1,rec2+rec3,(rec4,rec5)); f(m+n,x+y,f(m+n,z,(x,y))); 实参1=rec1 m+n 实参2=rec2+rec3 x+y 实参3=(rec4,rec5) f(m+n,z,(x,y)) 故实参个数为3. ...

qq_42024067的博客 957

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【C语言】main函数参数解析及简易计算器的实现。

具体题目: 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:命令行参数输入:test.exe -a 1 2                执行1+2输出3 这道题主要用到的是main函数的参数这部分内容。 main函数既然是参数应该也是存在参数的...

Miss_Monster的博客 946

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C语言工程里面创建多个含有main函数的文件,实现单元测试

【C语言多个main】C语言工程里面创建多个含有main函数的文件,实现单元测试。

qq_43208820的博客 644

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C语言实现写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

【代码】C语言实现写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

m0_71709382的博客 1513

C语言:main函数参数解析。编写程序可以通过接收参数实现简易整数计算器。

一.main函数参数解析 1.main函数的原型 int main(int argc,char *argv[],char *envp[]) { program-statements } 2.各个参数 1.第一个参数:argc argc是一个整型变量,表示命令行参数的个数(含第一个参数)。 2.第二个参数:argv argv是一个字符指针的数组,每一个元素是一个字符指针,...

ETalien_的博客 1973

从零实现aarch64裸机启动至C语言main函数调用

深入剖析aarch64架构下从上电复位到跳转main函数的完整启动流程,涵盖异常级别切换、栈初始化及汇编与C语言交互,适合嵌入式系统开发者掌握底层运行机制。

weixin_35636570的博客 422

C语言-采用指针变量做形参,编写一个实现两个整数交换的函数。在main函数中输入3个整数,调用数据交换函数将他们按从大到小的顺序排序后输出,

希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,支持一下笔者吧~

Larry的博客 379

【C语言】main函数的argc、argv传参

一、main函数返回值 1.1 函数为什么需要返回值 一般而言,参数是函数的输入,返回值是函数的输出(在高级应用中,使用参数放回,放回值说明状态) 函数需要对外输出数据(函数运行的一些结果值)因此需要返回值 形式上来说,函数被另一个函数所调用,返回值作为函数式的值返回给调用这个函数的地方 1.2 main函数的正确书写 以下三种方式是正确规范的 int main(void){} int ...

baymaxly的博客 1万+

使用main函数的参数,实现一个整数计算器 C语言

使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:命令行参数输入:test.exe -a 1 2 执行1+2输出3 #pragma warning (disable:4996) #include<stdio.h> #include<stdlib.h>

HiMark 796

C语言求x的y次方,fun函数实现x的y次方的计算,main函数中调用fun函数

void main() { //定义fun函数 double fun(int x, int y); int x, y; double z; printf("请分别输入x,y的值:"); scanf("%d %d",&x,&y); z = fun(x,y); //调用函数 printf("%d的%d次方 = %lf\n",x,y,z); } double fu...

码上言 1万+
上一篇: 数据结构——链式队列的实现
下一篇: 【C语言】冒泡排序可以排序多个字符串
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值