首页 > 其他分享 >c语言main传参

c语言main传参

时间:2024-01-22 21:05:02浏览次数:34  
标签:传参 include return 语言 int argv main

c语言中怎么理解main函数为什么传参

main函数传参是为了接收命令行参数。在C语言中,main函数可以接收两个参数,分别是argc和argv。argc表示命令行参数的个数,而argv是一个指向字符串数组的指针,其中存储了命令行参数的值。

通过传参给main函数,可以在程序运行时从命令行中接收参数,从而实现程序的灵活性和通用性。这样可以使程序具有更好的交互性,用户可以通过命令行参数来控制程序的行为,而不需要每次都修改源代码。传参给main函数也方便了程序的测试和调试,可以通过命令行参数传入不同的参数值进行测试,而不需要修改源代码。

总的来说,main函数传参可以使程序更加灵活、通用,提高程序的交互性和可扩展性。

两种传参方式
int main(int argc,char *argv[])//1.
int main(int argc,char **argv)//2.

例子:

#include"add.h"
int Add(int a,int b)
{
	return a+b;
}
#ifndef _ADD_H_
#define _ADD_H_
int Add(int a,int b);


#endif
#include"sub.h"
int Sub(int a,int b)
{
	return a-b;
}
#ifndef _SUB_H_
#define _SUB_H_
int Sub(int a,int b);
#endif
#include "mul.h"
int Mul(int a,int b)
{
	return a*b;
}
#ifndef _MUL_H_
#define _MUL_H_
int Mul(int a,int b);

#endif
#include"div.h"
int Div(int a,int b)
{
	int c=a/b;
	return c;
}
#ifndef _MAIN_H_
#define _MAIN_H_
#include"add.h"
#include"mul.h"
#include"div.h"
#include"sub.h"

#endif
#ifndef _DIV_H_C
#define _DIV_H_C
int Div(int a,int b);
#endif
#include<stdio.h>
#include<stdlib.h>
#include"main.h"
//./a.out 111 - 222
int main(int argc,char *argv[])
{
	if(argc !=4)
	{
		printf("输入有误\n");
		return -1;
	}
	int a=0;
	int b=0;
	a=atoi(argv[1]);
	b=atoi(argv[3]);//atoi()--将字符串转换为整形
	switch(*(argv[2]))
	{
		case '+':printf("add=%d\n",Add(a,b));break;
		case '-':printf("sub=%d\n",Sub(a,b));break;
		case '*':printf("mul=%d\n",Mul(a,b));break;
		case '/':printf("div=%d\n",Div(a,b));break;
		default:printf("输入错误\n");
	}
	return 0;
}

Linux-unbuntu中,当一起编译这些代码时,会生成一个可执行文件./a.out

当想计算加法时可输入: ./a.out  1 + 2

.....

特殊 *  :

当想计算乘法时可输入: ./a.out  1 '*' 2   中间用单引号把*包括,其它运算符正常使用

标签:传参,include,return,语言,int,argv,main
From: https://blog.51cto.com/u_16425777/9369594

相关文章

  • C语言学习第三天
    一、选择语句#include<stdio.h>intmain(){intinput=0;printf("学习C语言\n");printf("你要好好学习C语言,然后好好学习数据结构吗?(1/0)/n,1--好好学习,2--不好好学习");scanf("%d",&input);//if(input==0)printf("娶个丑老婆");......
  • 收到请求数据的常用安全验证方案,go语言,gin框架
    收到请求数据的常用安全验证方案,go语言,gin框架原创 小锟哥哥 GoLang全栈 2024-01-1807:47 发表于四川 1人听过在使用Gin框架处理前端请求数据时,必须关注安全性问题,以防范常见的攻击。本文将探讨Gin框架中常见的安全问题,并提供相应的处理方法,以确保应用程序的稳......
  • 问题:What is this passage mainly about
    问题:WhatisthispassagemainlyaboutA.DemonstratingtheseriousweatherconditionaroundLakeChad.B.Introducingpeople'sactivityaroundLakeChad.C.AnalyzingofthefactorsthatcausewaterdecreasesinLakeChad.D.Introducingscientists'work......
  • R语言包安装失败常见问题解决
    更改或指定镜像源出现这个问题很有可能是你现在用的镜像中未纳入这个包,一是可以多换个源试试。如:install.packages('package-name',repos='http://cran.us.r-project.org')或,在Rstudio中可以:或,命令行可直接指定Rstudio:install.packages('package_name',dependencies=TRUE......
  • C语言中的野指针问题
    1、以下这种情况p也是个野指针int*ceFun(){intx=5;return&x;}intmain(){int*p=ceFun();*p=70;printf("%p\n",p);return0;}因为p指向了一个局部变量,指向了一个已经释放内存的变量2、还有哪些现象,开始定义的时候没......
  • C语言中的操作符:了解与实践
    ​✨✨欢迎大家来到贝蒂大讲堂✨✨​......
  • 开放签电子签章工具版升级至 1.1 版本,解决跨平台、跨语言集成使用
    本周开放签开源工具版增加了SDK与API能力,更新至1.1版本,使开放签电子签章工具能力进一步提升。SDK将便于java用户直接使用CA证书颁发和签名能力。API接口采用HTTP(S)通讯,JSON报文格式,具有跨平台、跨语言特性,专为各类开发语言用户提供服务,便于其他语言的开发者快速集成和应用电子签......
  • .net8 传参数遇见个很郁闷的问题
    将老项目迁移至.net8遇见个奇葩问题记录下,顺便看有人遇见过么新建.net8 mvc项目控制器publicclassHomeController:Controller{privatereadonlyILogger<HomeController>_logger;publicHomeController(ILogger<HomeController>logger)......
  • C语言中的access函数的使用(转载)
    在Linux下,access函数的声明在<unistd.h>文件中,声明如下:intaccess(constchar*pathname,intmode);access函数用来判断指定的文件或目录是否存在(F_OK),已存在的文件或目录是否有可读(R_OK)、可写(W_OK)、可执行(X_OK)权限。F_OK、R_OK、W_OK、X_OK这四种方式通过access函数......
  • C语言基于面向对象的编程方法示例
    C语言基于面向对象的编程方法示例原型声明:typedefstruct_OBJECT_OPS{int(*get_name)(char*param);int(*set_name)(constchar*param);int(*dump)(intlevel);}OBJECT_OPS;原型初始化:OBJECT_OPSmyself={.get_name=get_my_name,.set_n......