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

可能我的实践还不够,不知道老外写东西为什么总喜欢将main函数写成 int main(int argc, char *argv[]),再加上最近师弟问过我这个问题,所以今天将其学习后,呈现给大家。微笑

argc这个变量存储的是你函数输入的变量个数,argv是一个数组指针,argv[0]存储的是你可执行程序的名称,从argv[1]....往后就是输入的变量。下面给出一个例子:

#include<stdio.h>
#include<stdlib.h>


int main(int argc, char *argv[])
{
	int a = atoi(argv[1]);
	int b = atoi(argv[2]);
	printf("%d",a+b);
	return 0;


}


当然切忌这个不是在vc下直接点击运行所能执行的程序,你需要在dos下找到你连接后的.exe 程序(别所你找不到exe在Debug下面微笑)。如上输入就O了。

上面程序中atoi是将字符串转换成整数,这个好像面试经常考微笑。那么我们就来亲自实现一下(当然我这个程序实现的比较粗略希望大家谅解,毕竟我还没有那么高的造诣)。


/*
	问题描述 将字符串转换成整数
	例如:
	     "345" 转换成345
*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void main()
{
	int sys = 1;
	char *str = "343455";
	int num = 0;

	if(str[0]=='+'||str[0]=='-')
	{
		sys = (str[0] =='-')? -1:+1;
		str++;
	}


	 while(*str !='\0' )
	{
		if(*str > '9' || *str < '0')
		{
			 printf("异常字符\n");
			 exit(0);
		}
		   
			num = num*10 + (*str - '0');
			str++;
		
	}


	num *= sys;

	printf("%d\n", num);
}


OK这个问题结束了,随着学习的深入我会继续更新博客。我还是新手有错的地方,希望大家多多谅解。当然我发的每道程序都经运行,我会尽量保证不出错。 微笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值