int main(int argc, char*argv[])
2015-07-25 21:34
615 查看
int main(int argc, char*argv[])是在linux系统中常用的main函数声明方式。因为基于命令行的linux操作系统,对于函数的输入直接在命令行中实现。
在例子中分析比较容易理解这个问题。
此程序经编译和连接后生成可执行文件prog.EXE
如果在此可执行文件所在目录的提示符下键入: prog ABCDEFGH IJKL<回车>则输出结果为: IJKLABCDEFGH
对于这个出现的结果,我们分析如下:
main(int argc,char *argv[])函数的两个形参,第一个int argc,是记录你输入在命令行上的字符串个数;第二个*argv[]是个指针数组,存放输入在命令行上的命令(字符串)。当命令行输入PROG ABCDEFGH IJKL时,记录了3个字符串(以间隔为界,不含间隔,这是约定),*argv[0]中放的是”PROG”,*argv[1]中放的是”ABCDEFGH”,*argv[2]中放的是”IJKL”,这样argc就是3了。while(–argc>0)是条件循环,argc>0时继续;argc初值是3,前置–先减1为2,所以后面的输出语句打出*argv[2]中的内容IJKL;再执行while(–argc>0),argc再减1为1,打出*argv[1]中的内容ABCDEFGH;再循环,argc减1为0,条件破坏,不再执行while(–argc>0)的循环体。所以最后显示的是IJKLABCDEFGH。
再比如对于socket中的函数:
这里argv[1]就作为我们进行send_msg函数的发送地址。比如我们在linux命令行操作中输入:./udp 192.168.1.1(假设当前目录中有udp.exe)就可以正常执行操作。
在例子中分析比较容易理解这个问题。
main(int argc,char *argv[]) {while(--argc>0) printf("%s",argv[argc]); printf("\n");}
此程序经编译和连接后生成可执行文件prog.EXE
如果在此可执行文件所在目录的提示符下键入: prog ABCDEFGH IJKL<回车>则输出结果为: IJKLABCDEFGH
对于这个出现的结果,我们分析如下:
main(int argc,char *argv[])函数的两个形参,第一个int argc,是记录你输入在命令行上的字符串个数;第二个*argv[]是个指针数组,存放输入在命令行上的命令(字符串)。当命令行输入PROG ABCDEFGH IJKL时,记录了3个字符串(以间隔为界,不含间隔,这是约定),*argv[0]中放的是”PROG”,*argv[1]中放的是”ABCDEFGH”,*argv[2]中放的是”IJKL”,这样argc就是3了。while(–argc>0)是条件循环,argc>0时继续;argc初值是3,前置–先减1为2,所以后面的输出语句打出*argv[2]中的内容IJKL;再执行while(–argc>0),argc再减1为1,打出*argv[1]中的内容ABCDEFGH;再循环,argc减1为0,条件破坏,不再执行while(–argc>0)的循环体。所以最后显示的是IJKLABCDEFGH。
再比如对于socket中的函数:
pthread_create(&threadsend,NULL,(void*)(&send_msg),(void*)argv[1]);
这里argv[1]就作为我们进行send_msg函数的发送地址。比如我们在linux命令行操作中输入:./udp 192.168.1.1(假设当前目录中有udp.exe)就可以正常执行操作。
相关文章推荐
- 2015 Multi-University Training Contest 2 hdu 5308 I Wanna Become A 24-Point Master
- ECHOSRV.C中的main()设立一个 I/O completion port
- 【bzoj4152】 AMPPZ2014The Captain 最短路
- 一刀斩 :“SVN” failed to start 服务启动失败
- UVA - 10976 Fractions Again?!
- centos中w使用smbclient连接window出现:session setup failed: NT_STATUS_LOGON_FAILURE
- 二分搜索 HDOJ 2675 Equation Again
- 模拟器报Installation error: INSTALL_FAILED_CONTAINER_ERROR解决方法
- hdoj 2647 N!Again
- 人工智能的策略,如果国家优先发展”梦想成真”?
- Linux中的文件描述符与打开文件之间的关系 :http://blog.csdn.net/cywosp/article/details/38965239
- 关于Flash中的黑白棋AI编写心得
- Snail—OC学习之类别Category
- [leetcode ]220.Contains Duplicate III
- Snail—OC学习之空变量的表示
- Snail—OC学习之NSNumber
- Snail—OC学习之日期NSDate
- UVa 11853 - Paintball(DFS)
- HDU 1302 The Snail
- http://blog.csdn.net/ooflywing/article/details/5616311