[转帖]int main(int argc,char * argv[]) windows 下的使用

通常对于初学C语言的同学来说,我们的main函数,都是没有形参的,那么这是怎么回事呢?

根据C语言规定,main函数的参数只能有两个,习惯上这两个参数为argc和argv,格式如下:

int main(int argc,char * argv[])

{

//

program

//

}

解析:此时,main函数有两个形参。第一个argc为int整形。第二个为指针数组。也就是这个形参是个数组,这个数组的成员是指针。其指针指向char型。

argc记录了用户在运行程序的命令行中输入的参数的个数。

arg[]指向的数组中至少有一个字符指针,即arg[0].他通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序
文件所在的路径。

这句话说的实在是太笼统了,让我们同学不明所以。

是这样的。

在调用一个可执行程序时,某些情况下需要向程序传递参数。如我们可以在控制台中键入notepad.exe,
回车后将执行记事本程序。如果我们希望在打开notepad时同时打开一个文本文件,可以在notepad.exe  
后面跟上文件的路径和名字,如notepad.exe   example.txt(文件在当前路径)。

那么程序中如何能得到这些输入参数呢?这个工作是编译器帮我们完成的,编译器将输入参数的信息
放入main函数的参数列表中。

main函数的参数列表保存了输入参数的信息,第一个参数argc记录了输入参数的个数,   
第二个参数是字符串数组的,字符串数组的每个单元是char*类型的,指向一个c风格字符串。   
以notepad.exe   example.txt为例   
argc是2,就是说argv数组中有两个有效单元   
第一单元指向的字符串是"notepad.exe"   
第二单元指向的字符串是"example.txt"

argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。

这个赋值过程是编译器完成的,我们只需要读出数据就可以了。
-----------------------------------------------------------------------------

一下是实例代码:C语言验证。

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

}

最后经过编译和连接会成为可执行程序:main.exe。

我们可以通过开始-〉运行->输入cmd。出现一下窗口。

通过cd命令进入main.exe所在目录。然后键入main chen hui jie回车即可观看结果。

下面介绍另一种验证他得方法:

通过强大的运行

之所以可以在该文本处键入cmd。打开控制台,是因为在C:\WINDOWS\system32路径下,有

同样的道理,我们将main.exe,复制粘贴到C:\WINDOWS\system32路径下,即可,方便的只需在运行里输入main [实参]……即可。

如下图:

结果如下:

本帖引自http://hi.baidu.com/grandyang/item/907649c064cc152c47d5c00a

转载于:https://www.cnblogs.com/KingOfFreedom/archive/2012/12/06/2805088.html

[转帖]int main(int argc,char * argv[]) windows 下的使用相关推荐

  1. C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明

    带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...

  2. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  3. 关于int main( int argc, char* argv[] ) 中arg和argv参数理解

    在示例程序中经常可以看到argc和argv这两个参数 ,在调试代码过程中遇到main函数为int main( int argc, char* argv[] ) 这种类型时往往会报错,或者是运行起来了但 ...

  4. int main( int argc , char *argv[] , char *envp[] )中参数解说

    原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...

  5. 关于main函数的(int argc,char *argv[])

    main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main( ...

  6. int main(int argc, char* argv[])

    以前学C语言的时候,很少用到int argc,char *argv[],感觉没啥用,所以也就没怎么了解.现在用到了,来学习一下.argc命令行输入参数的数量,argv是字符数组,看代码. [mapan ...

  7. 关于int main(int argc,char *argv[])

    在int main(int argc,char *argv[])中的int argc和char *argv[]都是用来在命令行里传递参数.在Linux环境下用的最多,Windows环境下一般用得较少. ...

  8. 主函数main中变量(int argc,char *argv[ ])的含义

    一直不太理解 int main( int argc, char* argv[] ) 或者 int main( int argc, char** argv ) 经典例子 对于理解argv[ ]函数很管用 ...

  9. 关于 命令行参数 main(int argc,char** argv)

    void main(int argc, char* argv[ ])等同于void main(int argc, char* *argv) 这行中有三个字符串分别为 cp.exe doc1.txt d ...

最新文章

  1. CocoaPods安装及使用《转》
  2. mysql语言的简介_谁能帮我介绍一下 MY SQL ?
  3. SAP删除会计科目 OBR2
  4. Ubuntu中安装配置和卸载FTP(转)
  5. MyBatis 获取数据库中自增主键值
  6. ASP.NET2.0中用ICallbackEventHandler实现客户端与服务器端异步交互
  7. 学霸网站-Beta版本发布说明
  8. 彻底卸载SqlServer2008R2
  9. python通过指定网卡发包_windows下用UDP 广播在特定网卡上发包
  10. linux中postfix(基于源码)的邮件系统
  11. 简单快速的用SpringBoot访问静态资源(图片、html)
  12. Google Chrome 势要消灭不安全的非 HTTPS 页面!
  13. JVM的7种垃圾收集器
  14. VS2010中文版莫名的错误
  15. Android内存优化大全(二)
  16. 【opencv学习之十二】opencv滑条及实例
  17. 智能电瓶车充电桩 ,电动车充电的安全利器
  18. Variational Autoencoders and Nonlinear ICA: A Unifying Framework
  19. C语言获取股票数据,c/c++开发分享获取贵州茅台2010年1月1号至今的股票交易数据,计算该股票历史数据的5日均线和30日均线...
  20. 《黃帝內經》第一章《上古天真論》

热门文章

  1. Swift 类与结构体
  2. Android使用sqlliteOpenhelper更改数据库的存储路径放到SD卡上
  3. SpringBoot入门 2
  4. myeclipse 快捷键(转载)
  5. IBM Racetrack内存为移动设备带来1TB容量
  6. 【回文串9】LeetCode 409. Longest Palindrome
  7. 牛客网--华为机试在线训练1:字符串最后一个单词的长度
  8. tensorflow LSTM:张量变形,5维变4维,4维变5维
  9. keras ConvLSTM2D 的简单应用
  10. Xcode常用技巧(1)-使用Xcode进行代码分析及GDB调试