main函数中的参数argv与argv[ ]的探讨

来源:互联网 发布:glide加载网络图片 编辑:程序博客网 时间:2024/04/25 18:49

argv与argv[ ]的探讨


我们看一下下面的程序,这个程序可能对每一个初学C的学生并不陌生。
/*main.c*/
 #include<stdio.h>
 
 int main(int argc,char *argv[])
 {
  printf("hello wrold!\n");
  return 0;
 }
我们用gcc来运行一下这个程序:
 [root@localhost ~]# gcc main.c -o main
 [root@localhost ~]# ./main
 hello,wrold!
 
/*这个程序的功能只是输出 hello,wrold! 这句话。议论输出的结果是什么本身没什么意思,可是我们接下来要讨论的是 int argc,char *argv[] 这两个整型变量和字符型数组变量所表示的含义。接下来看下面的一段程序:*/
/*main.c*/
 #include<stdio.h>
 
 int main(int argc,char *argv[])
 {
  printf("argc=%d\n",argc);
  printf("argv[0]=%s\n",argv[0]);
  printf("argc[1]=%s\n",argv[1]);
  printf("argv[2]=%s\n",argv[2]);
  printf("argc[3]=%s\n",argv[3]);
  printf("hello wrold!\n");
  return 0;
 }
/*同样,我们用gcc来运行一下这个程序:*/
 [root@localhost ~]# gcc main.c -o main
 [root@localhost ~]# ./main a1 b2 c3
 argc=4
 argv[0]=./main
 argv[1]=a1
 argv[2]=b2
 argv[3]=c3
 hello,wrold!
/*对比一下这两个程序,我们是不是下面的程序只是在多了几个printf()函数,printf()函数输出的正好就是main()函数中的参数int argc 和char *argv[]呢?对,在运行时候的这一段大家看到没有[root@localhost ~]# ./main a1 b2 c3,和上一个程序的运行有不同,在这里加了参数项 a1 b2 c3,这几个参数项在printf中有打印出来。然后我们来看为什么argc=4,argc表示的是统计用户在运行该程序是自己追加的字符串的个数,而argv[]则是把追加的字符串打印出来,gcc在打印的时候会默认为./main也是用户追加的字符串,所以统计出来的是argc=4,而不是3*/

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 龙妈和雪诺怎么办 车本扣6分怎么办 超速50扣了12分怎么办 开车超速扣12分怎么办 超速一次记12分怎么办? 驾照超速扣12分怎么办 c牌一次扣12分怎么办 超速罚500扣12分怎么办 高速超速记3分怎么办 高速超速记12分怎么办 过江隧道关闭了怎么办 高速限速60超了怎么办 超速扣了12分怎么办 上海 12分扣完了怎么办 狗抓伤只淌白沫怎么办 刑事案件法院迟迟不判决怎么办 法院判决书下来了没钱赔偿怎么办 被起诉开庭不去怎么办 地道塌陷造成房屋倒塌怎么办 海外看不了b站怎么办 最近脸胖了好多怎么办 最近胖了好多怎么办啊? 很瘦的人手胖怎么办 长得丑不敢相亲怎么办 abs抱死发不动了怎么办 qq飞车手游车到期了改装怎么办 育碧下载游戏慢怎么办 豹纹守宫鼻子还有个残皮怎么办 睫角守宫断尾怎么办 定金发票弄丢了怎么办 xp电脑显示输入不支持怎么办 月子见风怎么办暴雪将 老氏电视机出现雪花点怎么办 飞利浦电视显示雪花片怎么办 电视无信号出雪花怎么办 电视打开都是雪花没有电视台怎么办 电视视频1无信号怎么办 新买的电视无信号怎么办 卫星有信号没有视频怎么办 户户通没有信号怎么办视频 雪花泥粘衣服上怎么办