16 - 10 - 30 命令行参数 ----------《c语言程序设计》

启动一个程序的基本方式是在操作系统 命令状态下
由键盘输入一个命令,操作系统根据 命令名 去查找相对应的程序代码文件。把它装入内存并命令它开始执行。

命令行 就是为了启动程序 而在 操作系统状态下输入的 表示命令的 字符行。虽然当前主流操作系统是应用图形化界面较多,但是 实际的命令依然存在于图标或菜单的定义中。

ex :用系统的编辑器 编辑一个文件,可能输入以下命令:

edit file1.txt

文件名 lile1.txt 就是命令的附加信息。

命令行中的这些附加信息以 字符序列 的形式出现。即:命令行参数。比如在常见的系统中,若源程序文件名是 abcd.c,那么经过编译链接后一般会产生abcd.exe 的可执行程序文件。在命令状态下输入命令,这个程序就会装入执行。
abc

C语言如何看待命令行?

c把命令行当中的字符看作是由空格分隔的 若干个字符串。每个字符串是一个命令行参数,第一个字符串作为命令名,也是编号为0的参数,以此类推。

在程序中可以按规定方式使用这些字符串,以接受和处理各个命令行参数。

(返回类型) main(int argc,char*argv[] )

人们常用int argc,char*argv[]作为main函数的两个参数的名字,但是 大家知道这两个参数完全可以用其他任何的名字。但他们的类型是确定的,只要在定义main函数时,写出上面这样类型正确的 函数原型,就能保证在程序启动时 能够正确得到有关命令行参数的有关信息。

当一个用C编写的程序被装入内存准备执行时,
main函数的两个参数就会被 自动 给定初值 。

–argc 的值是 启动命令行 中的 命令行参数的个数;
–argv是一个字符型指针数组,这个数组里 共有 argc+1 个字符型指针变量。其中的前argc个 存储 各字符串首地址,最后一个是空指针,表示数组结束。

#include<stdio.h>
int main(int argc,char*argv[])
{
    int i;
    for(i = 0;i<argc;i++)
       printf("%s\n",argv[i]);
    return 0;

} 
     //或是由于argv 是一个指针数组,利用他的最后一个数组元素中事实
     //可以写出下面的这片代码:

#include<stdio.h>
int main(int argc,char*argv[])
{
    while(*argv!= NULL)
        printf("%s\n",*argv++);
    return 0;
}       //argv++是合法的,argv作为数组名称,是函数参数
        //他不是常量,是变量。

设这个程序的原文件名是 echo.c 编译后的 可执行文件 是echo.exe,执行 下面命令:

echo programming is understanding

将会产生如下输出信息:

echo
programming
is
understanding

(其实我用 dev并没有得到这个结果,或许是哪里的打开方式不对)
【捂脸哭】

版权来源/书籍资料
   -------《c语言程序设计》 顾沈明主编--清华大学出版社
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值