C字符串函数和命令行参数的学习心得
来源:互联网 发布:java使用ftp上传文件 编辑:程序博客网 时间:2024/06/06 08:54
1.字符串排序:
由于在学校已经学过了两种(冒泡和选择)排序方法,所以这一章学起来毫无压力,简而言之,就是使用排序算法对一个二维数组的第一维进行排序。由于字符串基于数组处理,所以对字符串进行排序实际上是对指向每个字符串的指针进行排序。
2.命令行参数:
学了半个多学期的C今天终于知道main的参数到底是什么了。如先前所想的,函数的调用者必须向函数接口传递符合的参数,main作为C程序的入口,其调用者显然不能是其他函数,调用main实际上就是运行了这个C程序,换句话说,C程序是被系统用户选择执行的,所以其实是操作系统调用了main。那么问题来了:在图形界面操作系统下用户要怎么向一个函数传递参数呢?(不是双击就可以打开了么........)图形操作界面不可以,不代表终端也不可以,由于C古老的历史,windows还在吃奶的时候C就已经开始制定标准了,那时候主流的操作系统是命令行操作系统,例如dos啥的。执行一个程序必须输入一个命令,命令之后也可以添加一些其他的字符,这些除了调用程序命令之外的额外字符就是C的参数了。
依据惯例,main的两个参数被分别命名为argc和argv(我至今没能理解这两个参数名称的英文含义......),一般来说,main的声明如下
由于在学校已经学过了两种(冒泡和选择)排序方法,所以这一章学起来毫无压力,简而言之,就是使用排序算法对一个二维数组的第一维进行排序。由于字符串基于数组处理,所以对字符串进行排序实际上是对指向每个字符串的指针进行排序。
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的参数也就不那么难了。
思考:如果我在写命令的时候没有在后面加上额外内容的话,会不会发生接口不正确的事?
试验一下:
还是可以执行的,只是其他内容没有了而已。
看起来这个接口没有那么严格嘛。。。。。。。。
0 0
- C字符串函数和命令行参数的学习心得
- 【C命令行参数】main函数的参数含义
- C中关于字符串和指针的一点学习心得
- C++main函数argc和argv命令行参数
- 带参数的main函数和命令行参数
- Main函数和命令行参数
- c/c++ main 函数命令行参数的使用 知识小结
- c/c++ main 函数命令行参数的使用 知识小结
- c/c++ main 函数命令行参数的使用 知识小结
- linux命令行参数解析学习心得
- getopt 模块:命令行选项和参数的函数
- C语言的命令行参数
- C语言的命令行参数
- c语言的命令行参数
- C语言的命令行参数
- 【C语言】命令行参数和环境变量的学习笔记
- 编写获取命令行参数Getopt函数(C++)
- C语言命令行参数解析函数
- windows平台上编译生成libzmq
- iOS开发PCH文件、NSLog真机不打印
- log4j【4】(log4j的性能问题)
- 文章标题
- 点对点隧道协议(PPTP)-rfc2637(未完待更新)
- C字符串函数和命令行参数的学习心得
- log4j【5】( log4j日志异步化大幅提升系统性能 )
- react(2)--Thinking in React
- hdu 4489 The King’s Ups and Downs (组合数学 + dp )
- HDU.1003【max-sum】---16.2.3
- Linux部分命令解释(命令缩写代表什么意思)
- 记录安卓学习过程(1)
- php中函数的定义,调用,及获取参数的方法。和位运算等。
- break,continue,return的区别