C字符串函数和命令行参数的学习心得

1.字符串排序:
    由于在学校已经学过了两种(冒泡和选择)排序方法,所以这一章学起来毫无压力,简而言之,就是使用排序算法对一个二维数组的第一维进行排序。由于字符串基于数组处理,所以对字符串进行排序实际上是对指向每个字符串的指针进行排序。


2.命令行参数:
    学了半个多学期的C今天终于知道main的参数到底是什么了。如先前所想的,函数的调用者必须向函数接口传递符合的参数,main作为C程序的入口,其调用者显然不能是其他函数,调用main实际上就是运行了这个C程序,换句话说,C程序是被系统用户选择执行的,所以其实是操作系统调用了main。那么问题来了:在图形界面操作系统下用户要怎么向一个函数传递参数呢?(不是双击就可以打开了么........)图形操作界面不可以,不代表终端也不可以,由于C古老的历史,windows还在吃奶的时候C就已经开始制定标准了,那时候主流的操作系统是命令行操作系统,例如dos啥的。执行一个程序必须输入一个命令,命令之后也可以添加一些其他的字符,这些除了调用程序命令之外的额外字符就是C的参数了。
    依据惯例,main的两个参数被分别命名为argc和argv(我至今没能理解这两个参数名称的英文含义......),一般来说,main的声明如下
int main (int argc, char* argv[])

   argc是向main传递字符串的数量,argv是向main传递字符串的具体内容。例如:

#include<stdio.h>
int main ( int argc, char *argv[] )
{
	int count = 0;
	printf("The command line has %d arguments: \n",argc-1);
	for ( count = 0; count < argc; count++ )
		printf("%d:%s\n",count,argv[count]);
	printf("\n");
	return 0;
}
在命令行运行该程序,并在运行程序命令后加上一些字符:


那么,后面的附加内容被储存到了程序中并被反映出来。实际上,这些参数和一般的函数接口的使用方法是一样的,并没用想的那么玄乎。理解之后,main的参数也就不那么难了。


思考:如果我在写命令的时候没有在后面加上额外内容的话,会不会发生接口不正确的事?

试验一下:


还是可以执行的,只是其他内容没有了而已。

看起来这个接口没有那么严格嘛。。。。。。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值