Linux C 编程中,int main(int argc,char* argv[])解析
来源:互联网 发布:电魂网络怎么样 编辑:程序博客网 时间:2024/06/05 03:49
在学习Linux C的编程中,int main(int argc,char* argv[])这个主函数样子应该不少见,那要怎么理解呢?传入字符串后,如果你会使用传入后的字符串中的单个字符,理解其中的原理,那么就不用往下看了。
argc是一个整型,指的是往主函数传入字符串的个数。
比如:
编译好test.c这个文件后生成可执行文件test,敲指令 ./test test1 test2 test3
这时argc为4,分别为test,test1,est2,test3。
argv[]是一个指针数组,即每个数组元素都为一个指针,即每个数组元素都是一个地址变量,每个元素存储的是字符串的地首地址(字符串本身就是它的首地址)。
所以,用上面的例子,
printf("%s\n",argv[0]); 显示:test
printf("%s\n",argv[1]); 显示:test1
printf("%s\n",argv[2]); 显示:test2
printf("%s\n",argv[3]); 显示:test3
上面说的传入来的字符串的使用,如果我要使用传入来的字符串中的单个字符呢?那么就要先理解字符串的最基本概念了。
C语言中没有字符串这一种类型,但是它的存储方式是一维数组的方式存储的,所以一个字符串就是一个数组,字符串本身就是这个数组的首地址。
比如:
char a[]="test";
printf("%c\n",a[0]); 显示t
等于
printf("%c\n","test"[0]); 显示t
因为"test"就是字符串test的首地址,相当于a[]中的a.
所以,要用传入进来的argv[]中的单个字符,按上面的理解,不是一件很简单的事情吗?
如:
./test test1 (这样子输入指令)
printf("%s\n",argv[1]); 显示:test1
printf("%c\n",argv[1][0]); 显示:t
printf("%c\n",argv[1][1]); 显示:e
- Linux C 编程中,int main(int argc,char* argv[])解析
- 解析int main(int argc, char* argv[])
- int main (int argc ,char **argv)解析:::
- C语言中 main(int argc, char**argv)和main(int argc, char*argv[])
- c语言中:int main(int argc, char* argv[])
- C语言中int main(int argc,char* argv[])详解
- main (int argc,char *argv[]) 解析
- main(int argc,char **argv)参数解析
- C语言main(int argc,char *argv)
- main中int argc, char **argv 含义
- c: main()中int argc, char* argv[]参数的用法
- c语言中main函数参数int argc,char*argv
- linux:int main(int argc,char *argv[],char *envp[])
- main(int argc,char **argv)
- main(int argc,char *argv[ ])
- main(int argc,char **argv)
- main(int argc, char **argv)
- main(int argc, char **argv)
- Linux
- Android显示GIF动画的几种方法
- isalnum,isalpha,isdigit.....isxdigit,ispunt等字符函数的检测程序
- OSX:禁止Airport Utility自动开启
- 【Hadoop】RPC Overview
- Linux C 编程中,int main(int argc,char* argv[])解析
- Java xml 文件压缩成AXML文件
- RVDS2.2 成功安装与AXD调试步骤
- 为什么是神经网络?
- mingw环境变量设置
- C的指针和数组的深入理解
- spring3+security3+struts2+mybatis+memcached+gbac权限架构开源项目
- skyeye uboot no nand device found问题
- 用samba共享文件windows和linux时无法访问和对文件操作