- C 编程教程
- C - 首页
- C 语言基础
- C - 概述
- C - 特性
- C - 历史
- C - 环境搭建
- C - 程序结构
- C - Hello World
- C - 编译过程
- C - 注释
- C - 词法单元
- C - 关键字
- C - 标识符
- C - 用户输入
- C - 基本语法
- C - 数据类型
- C - 变量
- C - 整数提升
- C - 类型转换
- C - 类型强制转换
- C - 布尔类型
- C 语言中的常量和字面量
- C - 常量
- C - 字面量
- C - 转义序列
- C - 格式说明符
- C 语言中的运算符
- C - 运算符
- C - 算术运算符
- C - 关系运算符
- C - 逻辑运算符
- C - 位运算符
- C - 赋值运算符
- C - 一元运算符
- C - 自增和自减运算符
- C - 三元运算符
- C - sizeof 运算符
- C - 运算符优先级
- C - 其他运算符
- C 语言中的决策
- C - 决策
- C - if 语句
- C - if...else 语句
- C - 嵌套 if 语句
- C - switch 语句
- C - 嵌套 switch 语句
- C 语言中的循环
- C - 循环
- C - while 循环
- C - for 循环
- C - do...while 循环
- C - 嵌套循环
- C - 无限循环
- C - break 语句
- C - continue 语句
- C - goto 语句
- C 语言中的函数
- C - 函数
- C - 主函数
- C - 按值调用函数
- C - 按引用调用函数
- C - 嵌套函数
- C - 可变参数函数
- C - 用户自定义函数
- C - 回调函数
- C - return 语句
- C - 递归
- C 语言中的作用域规则
- C - 作用域规则
- C - 静态变量
- C - 全局变量
- C 语言中的数组
- C - 数组
- C - 数组的特性
- C - 多维数组
- C - 将数组传递给函数
- C - 从函数返回数组
- C - 可变长数组
- C 语言中的指针
- C - 指针
- C - 指针和数组
- C - 指针的应用
- C - 指针运算
- C - 指针数组
- C - 指针到指针
- C - 将指针传递给函数
- C - 从函数返回指针
- C - 函数指针
- C - 指向数组的指针
- C - 指向结构体的指针
- C - 指针链
- C - 指针与数组
- C - 字符指针和函数
- C - 空指针
- C - void 指针
- C - 野指针
- C - 解引用指针
- C - 近、远和巨型指针
- C - 指针数组的初始化
- C - 指针与多维数组
- C 语言中的字符串
- C - 字符串
- C - 字符串数组
- C - 特殊字符
- C 语言中的结构体和联合体
- C - 结构体
- C - 结构体和函数
- C - 结构体数组
- C - 自引用结构体
- C - 查找表
- C - 点 (.) 运算符
- C - 枚举 (或 enum)
- C - 结构体填充和打包
- C - 嵌套结构体
- C - 匿名结构体和联合体
- C - 联合体
- C - 位域
- C - Typedef
- C 语言中的文件处理
- C - 输入和输出
- C - 文件 I/O (文件处理)
- C 预处理器
- C - 预处理器
- C - 预处理指令
- C - 预处理器运算符
- C - 宏
- C - 头文件
- C 语言中的内存管理
- C - 内存管理
- C - 内存地址
- C - 存储类别
- 其他主题
- C - 错误处理
- C - 可变参数
- C - 命令执行
- C - 数学函数
- C - static 关键字
- C - 随机数生成
- C - 命令行参数
- C 编程资源
- C - 问答
- C - 快速指南
- C - 速查表
- C - 有用资源
- C - 讨论
C - 主函数
C 语言中的 main() 函数
C 语言中的 main() 函数是任何程序的入口点。程序执行从 main() 函数 开始。它旨在执行程序的主要处理并清理程序分配的任何资源。在 C 代码中,可能存在任意数量的函数,但必须有一个 main() 函数。无论它在代码中的位置如何,它都是第一个执行的函数。
语法
以下是 C 语言 中 main() 函数的语法:
int main(){ //one or more statements; return 0; }
语法解释
作为其语法的一部分,函数有一个名称,该名称遵循形成标识符的规则(以字母或下划线开头,并且包含字母、数字或下划线)。名称后面跟着一个括号。通常,main() 函数定义为没有参数,尽管它可能有 argv 和 argv 参数来接收来自命令行的值。
main() 函数的有效/不同签名
main() 函数的签名(原型)如下:
int main() { . . return 0; }
或者
int main(void){ . . return 0; }
或者
int main(int argc, char *argv[]){ . . return 0; }
main() 函数示例
以下示例演示了 main() 函数
#include <stdio.h> int main() { // Write code from here printf("Hello World"); return 0; }
关于 main() 函数的重要事项
- C 程序必须具有 main() 函数。
- main 不是 C 关键字。
它被归类为 用户定义函数,因为它的主体不是预先确定的,它取决于程序的处理逻辑。
按照惯例,int 是 main() 的返回类型。main() 函数体中的最后一个语句返回 0,以指示函数已成功执行。任何非零返回值都表示失败。 - 一些旧的 C 编译器允许您使用 void 返回类型定义 main() 函数。
- 但是,这被认为是非标准的,不建议使用。
- 与其他函数相比,main() 函数
- 不能声明为内联。
- 不能声明为静态。
- 不能获取其地址。
- 不能从您的程序中调用。
main() 在 C 中是如何工作的?
程序的执行从 main() 函数开始,因为它是程序的入口点,它开始执行其内部编写的语句。源程序中的其他函数被定义为执行某些任务。main 函数可以调用任何这些函数。当 main 调用另一个函数时,它将执行控制权传递给该函数,并选择性地传递必要的参数数量和类型,以便执行从被调用函数中的第一个语句开始。当执行 return 语句或到达函数末尾时,被调用函数将控制权返回给 main。请注意,当其返回类型为 int 时,return 语句隐式地存在于最后一个语句中。
程序通常在从 main 返回或到达 main 的末尾时停止执行,尽管由于各种原因,它可能在程序中的其他点终止。例如,当检测到某些错误条件时,您可能希望强制终止程序。为此,您可以使用 exit 函数。
在 main() 函数中使用 exit()
C exit() 函数 是一个标准库函数,用于终止调用进程。使用 exit(0) 表示没有错误,使用 exit(1) 表示程序由于遇到错误而退出。
示例
#include <stdio.h> #include <stdlib.h> int add(int, int); int main (){ int i; for ( i = 1; i<=5; i++){ if ( i == 3 ){ printf (" \n exiting .."); exit(0); } else printf (" \n Number is %d", i); } return 0; }
输出
Number is 1 Number is 2 exiting ..
带 main() 的命令行参数
通常,main() 函数定义为没有任何参数。但是,您可以使用参数定义 main() 以使其接受来自命令行的值。在这种类型的用法中,main() 函数定义如下:
语法
以下是带有 命令行参数 的 main() 函数的语法
int main(int argc, char *argv[]){ . . return 0; }
参数定义
参数定义如下:
argc - 第一个参数是一个整数,包含 argv 中后续参数的计数。argc 参数始终大于或等于 1。
argv - 第二个参数是一个以 null 结尾的字符串数组,表示用户为程序输入的命令行参数。按照惯例,argv[0] 是调用程序的命令。argv[1] 是第一个命令行参数。来自命令行的最后一个参数是 argv[argc - 1],而 argv[argc] 始终为 NULL。
示例:使用带命令行参数的 main() 函数
考虑以下程序以了解命令行参数。
#include <stdio.h> #include <stdlib.h> int add(int, int); int main (int argc, char *argv[]){ int x, y, z; if (argc<3){ printf("insufficient arguments"); } else{ x = atoi(argv[1]); y = atoi(argv[2]); z = x+y; printf("addition : %d", z); } return 0; }
只需编译并构建程序为 test.c,不要从您编辑和编译的 IDE 中运行。转到命令提示符并按如下方式运行程序:
C:\Users\mlath>test 10 20 addition : 30
在本章中,我们学习了在 C 中定义 main() 函数的重要性及其语法。任何 C 程序都必须具有 main() 函数。按照惯例,它应该返回 0 以指示执行成功。您还可以为 main() 函数定义参数,它们可以从命令行传递。