main 函数是 C 程序的入口点, 不可或缺, 不可重复;

main 函数应返回一个整数值给操作系统, 返回 0 表示正常结束.

前面使用的 main 函数都是无参数的: int main(void);

main 可以有两个参数: int main(int argc, char *argv[]);
第一个是自动获取的参数数目(+1), 第二个是参数列表(字符串列表);
这一般用于控制台或 dos 下,
在 Windows 下我们双击文件名打开文件时, 该文件名(包括路径)也是通过这些参数传递的.



1. 获取 main 函数第一个参数的默认值:



它会是 1; 我们并没有给它参数呀? 原来它是把文件名当作第一个参数的.



#include <stdio.h>int main(int argc, char* argv[])
{printf("%d\n", argc); /* 1 */getchar();return 0;
}

2. 获取第一个参数(也就是文件名):



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

3. 给 main 函数建立并获取参数列表:



如果是在控制台或 dos 下, 在程序名后面输入就是了, 现在呢?
C++Builder 菜单 -> Run -> Parameters... -> 在 Parameters 输入测试参数(譬如: 11 22 33), 用空格隔开.
此对话框也可从 Project -> Project Options -> Debuger 进入.



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

4. 假如需要其他类型的参数:



main 的参数都是字符串的(或者说是字符指针的), 要使用其他类型的参数, 譬如 int、double 等, 只能转换.



#include <stdio.h>
#include <stdlib.h>int main(int argc, char* argv[])
{int I;long L;double D;I = atoi(argv[1]);  /* 假定至少指定了一个参数 */L = atol(argv[1]);D = atof(argv[1]);printf("%d, %ld, %g\n", I, L, D);getchar();return 0;
}

5. C++Builder 2009 中的 main 函数:



//标准的 main 函数:
int main(int argc, char* argv[])
{return 0;
}//C++Builder 2009 中的 main 函数:
int _tmain(int argc, _TCHAR* argv[])
{return 0;
}/*
_tmain 是个 define, 在 tchar.h 中这样定义: #define _tmain main
程序在预处理阶段将会把它替换为: main_TCHAR 是重命名的 char 类型, 在 tchar.h 中这样定义: typedef char _TCHAR;看来要想按照 C++Builder 2009 给的默认代码使用, 是离不开 tchar.h 的.C++Builder 2009 为什么要这样? 肯定有理由, 可我不知道.
*/

转载于:https://www.cnblogs.com/del/archive/2008/12/05/1348072.html

学点 C 语言(41): 函数 - 关于 main 函数相关推荐

  1. c语言程序总是从main函数开始执行,c语言程序总是从main函数开始执行吗?

    是的,一个C程序总是从main函数开始执行,而不论其在程序中的位置.在main函数中可以调用程序中的其他函数,而其他函数却不可以调用main函数:程序最后再从main函数中结束. 本教程操作环境:wi ...

  2. C++ main函数及main函数的参数

    C++ main函数及main函数的参数 1.main函数的几种形式 int main() int main(int argc) int main(int argc,char** argv)//int ...

  3. C语言程序可以没有main函数

    原文链接:http://www.wufangbo.com/175871/ 学习C语言的同学都知道,每个C程序要有一个main函数,程序从main函数开始执行,在main函数中结束.但事实上,C程序也可 ...

  4. c语言程序执行完main函数后,一个c程序在执行main函数之前和main之后都做了那些事情啊该如何解决...

    当前位置:我的异常网» C语言 » 一个c程序在执行main函数之前和main之后都做了那些 一个c程序在执行main函数之前和main之后都做了那些事情啊该如何解决 www.myexceptions ...

  5. main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?

    main函数在C语言中是怎么定义的?有什么作用? 更新时间:2019-10-24 13:55 最满意答案 额,main不是程序的最开始啦.拿用glibc的程序来说,C语言执行的过程应该是 _start ...

  6. c语言其他函数调用main函数,C语言中的main函数以及main函数是如何被调用的

    main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是: int main(int argc, char *argv[]); 其中argc是命令行参数的个数,ar ...

  7. C语言 | C语言中main函数:int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  8. C语言带参数的main()函数

    示例代码: 1 #include<stdio.h> 2 3 int main(int argc, char *argv[]) 4 { 5 int i; 6 printf("Tot ...

  9. c语言中总是从main函数开始,C语言总是从main函数开始执行吗

    //-------------------------------------------------------- 本文目录结构 |-提出问题 |-解决问题 |-推荐文章 |-作业 //------ ...

最新文章

  1. 为什么能通过域成员主机拿下域控服务器的密码呢
  2. QT绘制饼图和自定义饼图切片
  3. 航旅事业群面试(li)
  4. php mysql 一级分类_无限级分类 for PHP+Mysql
  5. 算天数什么时候加一什么时候不加一_陌陌加公会不加公会的区别?
  6. 跟我一起创建一个简单的javascript ajax对象 ---献给Web开发初学者
  7. Python:Python3错误提示TypeError: slice indices must be integers or None or have an __index__ method解决办法
  8. iOS 手机摇一摇功能
  9. python编程案例教程-quot;怎样编写一个教学案例quot;python编程案例教程电子教案...
  10. java的启动信息_Java实现软件运行时启动信息窗口的方法
  11. Tar的详细用法(转自Linux伊甸园)_拔剑-浆糊的传说_新浪博客
  12. 汽车电子中的2520贴片晶振
  13. 中国风android,小鱼天气 - 水墨古典中国风 #Android
  14. Microsemi Libero系列教程(全网首发)
  15. 探讨下app的包为什么抓不到
  16. Striped64 api详解
  17. ubuntu下安装 julia-1.4.2
  18. 中国军工产业发展规划及前景战略研究报告2021-2027年
  19. java备忘录代码和解释_Java备忘录
  20. 远程连接工具SSH Secure的使用

热门文章

  1. 网站服务器处理器计划怎么设置,服务器处理器计划
  2. python自带intertool模块找不到_介绍Python中内置的itertools模块
  3. 002_Maven命令
  4. 011_TreeMap对键实现了Comparable接口的对象排序
  5. 076_浏览器对象模型
  6. 图像处理:镜头频率(衍射极限) 和 相机采样:显微镜的采样定理
  7. 重启修复计算机怎么操作,如何以安全模式启动电脑,修复系统故障,这4个方法值得一试...
  8. okhttp 对应java版本_java – Android |在运行时获取OkHTTP库版本
  9. 没有form的表单验证_PHP动态生成表单,内置17种常用组件并且支持表单验证!
  10. python定义map数据_「每日一练」巧用Python处理列表中的数据