C语言:main函数参数的使用和指针数组的理解结合实例

对于main函数。我想不论什么一个接触到C语言的都不会陌生,可是说起main()函数有參数,你可能会产生非常多疑问了。

 

在这里,我们能够看到main()函数事实上是含有三个參数的,各自是

int argc, char *argv[ ], char *envp[ ]

这三个參数事实上就是main函数的參数。

在c的编译器中。通常是同意main函数是没有參数的。

1.argc (argument count) 
这第一个參数是int类型的argc,argc是一个整数。从字面上的意思我们就知道,他说的是给參数计数,指定有多少个參数被传递给命令行的程序。argc至少是1。 
2.argv(argument value) 
argv 第二个參数是一个指向字符串的指针数组。

命令行中的每一个字符串被存储到内存中,而且分配一个指针指向它。它存放了命令行的參数。


在通常,系统使用空格把各个字符串隔开,然后把程序本身的名字赋给argv[0],把系统最后一个字符串赋给argv[1]。 
3.envp 
这个不经常使用,用来存放系统的环境变量,而且是以NULL结尾。

1.使用main函数的參数,实现一个整数计算器,程序能够接受三个參数,第一个參数“-a”选项运行加法。“-s”选项运行减法,“-m”选项运行乘法,“-d”选项运行除法,后面两个參数为操作数。

比如:输入test.exe -a 1 2 
运行1+2输出3

 

#include<stdio.h>

#include<windows.h>

int main(int argc,char* argv[])

{

int ret=0;

int num1=atoi(argv[2]);

int num2=atoi(argv[3]);

if(argv!=4)

{

printf("输入错误\n");

return 1;

}

if(argv[1][0]=='-')

{

switch(argv[1][1])

{

case 'a':

ret=num1+num2;

printf("%d\n",ret);

break;


case 's':

ret=num1-num2;

printf("%d\n",ret);

break;

case 'm':

ret=num1*num2;

printf("%d\n",ret);

break;

case 'd':

ret=num1/num2;

printf("%d\n",ret);

break;

default:printf("第二个参数错误\n");

break;

}

}

system("pause");

return 0;

}

 

 

 

后期更新!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值