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 - Main 函数 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 - 指针 vs 数组 C - 字符指针和函数 C - NULL 指针 C - void 指针 C - 悬垂指针 C - 解引用指针 C - Near、Far 和 Huge 指针 C - 指针数组的初始化 C - 指针与多维数组

C 语言中的字符串

C - 字符串 C - 字符串数组 C - 特殊字符

C 语言的结构体和联合

C - 结构体 C - 结构体和函数 C - 结构体数组 C - 自引用结构 C - 查找表 C - 点 (.) 运算符 C - 枚举(或 enum) C - 结构填充和打包 C - 嵌套结构 C - 匿名结构和联合 C - 联合 C - Bit 位字段 C - Typedef

C 语言中的文件处理

C - 输入和输出 C - 文件 I/O(文件处理)

C 语言中的预处理器

C - 预处理器 C - #pragma 编译指示 C - 预处理器操作符 C - 宏 C - 头文件

C 语言中的内存管理

C - 内存管理 C - 内存地址 C - 存储类

C 其他主题

C - 错误处理 C - 可变参数 C - 命令执行 C - 数学函数 C - static 静态关键字 C - 随机数生成 C - 命令行参数

C 语言编程资源

C语言问题与解答答案 C语言快速指南 C语言速查表 C语言实用资源 C语言讨论


C - Main 函数

C 语言中的 main() 函数

C 语言中的 ma​​in() 函数是任何程序的入口点。程序的执行始于 main() 函数。该函数旨在执行程序的主要处理过程,并清理程序分配的所有资源。C 代码中可以有任意数量的函数,但必须有一个 main() 函数。无论其在代码中的位置如何,它都是第一个执行的函数。

语法

以下是 C 语言ma​​in() 函数的语法 -

int main(){
    //一个或多个语句;
    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() {
    // 从此处编写代码
    printf("Hello World");
    return 0;
}

关于 main() 函数的要点

  • C 程序必须有一个 main() 函数。
  • main 函数不是 C 关键字
    它被归类为 用户定义函数,因为其函数体并非预先确定,而是取决于程序的处理逻辑。
    按照惯例,main() 的返回类型为 int。main() 函数体中的最后一条语句返回 0,表示函数已成功执行。任何非零返回值均表示失败。
  • 某些旧版 C 编译器允许您使用 void 返回类型定义 main() 函数。
  • 然而,这被认为是非标准的,不推荐使用。
  • 与其他函数相比,main() 函数:
    • 不能声明为内联函数。
    • 不能声明为静态函数。
    • 不能获取其地址。
    • 不能从程序中调用。

main() 在 C 语言中是如何工作的?

程序的执行从 main() 函数开始,因为它是程序的入口点,它开始执行其中编写的语句。源程序中的其他函数被定义用于执行特定任务。main 函数可以调用这些函数中的任何一个。当 main 函数调用另一个函数时,它会将执行控制权传递给该函数,并可选地传递所需数量和类型的参数,以便从被调用函数中的第一个语句开始执行。当执行 return 语句或到达函数末尾时,被调用函数将控制权返回给 main 函数。请注意,当 return 语句的返回类型为 int 时,该语句将隐式地作为最后一个语句出现。

程序通常在从 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  (" 
 exiting ..");
         exit(0);
      }
      else

      printf  (" 
 Number is %d", i);
   }

   return 0;
}

输出

Number is 1
Number is 2
exiting ..

使用 main() 函数的命令行参数

通常情况下,ma​​in() 函数的定义不包含任何参数。但是,您也可以使用参数定义 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() 函数的参数,这些参数可以通过命令行传递。