首页 > 其他分享 >2. C语言 基础语法

2. C语言 基础语法

时间:2025-01-03 09:28:08浏览次数:7  
标签:语句 常量 int 基础 C语言 语法 关键字 标识符 语言

本章目录:


前言

C 语言是一种经典的通用编程语言,凭借其高效、灵活、可移植性强的特点,在系统编程、嵌入式开发和高性能计算等领域得到了广泛应用。作为许多现代编程语言的基础,掌握 C 语言的基本语法是学习其他编程语言的关键。

本文将从 C 语言的基础语法出发,详细讲解其核心概念,帮助读者理解并掌握 C 语言的编程技巧。


1. C 语言的基础结构

1.1 C 程序的基本构成

每个 C 程序都由若干部分组成,最基本的结构包括:

  1. 头文件引用:通过 #include 指令包含必要的库文件,以便使用预定义的函数。
  2. 宏定义:使用 #define 定义常量或代码片段,供程序使用。
  3. 主函数:每个 C 程序都必须包含一个 main() 函数,这是程序执行的入口。
  4. 变量声明:在函数中声明并初始化变量。
  5. 函数定义:定义程序所需的函数,以实现具体功能。

1.2 一个简单的 C 程序实例

#include <stdio.h>  // 引入标准输入输出库

int main() {
    printf("Hello, World!\n");  // 输出一行文字
    return 0;  // 返回 0,表示程序成功执行
}

解释

  • #include <stdio.h>:引入标准输入输出库,使用 printf 函数。
  • int main()main 函数是程序的入口点,返回 0 表示程序正常执行结束。
  • printf:标准库函数,用于输出文本。

1.3 复杂的 C 程序结构

一个稍微复杂的 C 程序可能包含更多的功能,比如输入输出、函数调用等:

#include <stdio.h>  // 引入标准输入输出库

#define PI 3.14159   // 定义常量 PI

// 函数声明
int add(int a, int b);

int main() {
    int num1, num2, sum;  // 变量声明

    // 用户输入
    printf("Enter two integers: ");
    scanf("%d %d", &num1, &num2);

    // 函数调用
    sum = add(num1, num2);

    // 输出结果
    printf("Sum: %d\n", sum);

    return 0;  // 返回 0,表示程序成功执行
}

// 函数定义
int add(int a, int b) {
    return a + b;
}

解释

  • #define PI 3.14159:定义了一个常量 PI,在程序中可以随时使用。
  • scanf:用来从标准输入获取用户输入。
  • add:一个自定义的函数,用于计算两个整数的和。

2. C 语言的基本构成单元

C 语言的程序由多种不同的构成单元(称为令牌)组成。每个令牌都有特定的功能,编译器通过对代码进行词法分析,将源代码分解成一个个令牌。C 语言中的令牌主要有以下几种类型:

  • 关键字(Keywords)
  • 标识符(Identifiers)
  • 常量(Constants)
  • 字符串字面量(String Literals)
  • 运算符(Operators)
  • 分隔符(Separators)

2.1 关键字

C 语言有一组保留字,称为关键字,它们是语言的基础语法单位,具有特定的含义。以下是 C 语言的关键字列表:

标准关键字
autobreakcasecharconstcontinuedefaultdo
doubleelseenumexternfloatforgotoif
intlongregisterreturnshortsignedsizeofstatic
structswitchtypedefunionunsignedvoidvolatilewhile
C99 新增关键字
inlinerestrict_Bool_Complex_Imaginary
C11 新增关键字
_Alignas_Alignof_Atomic_Static_assert_Noreturn
_Thread_local_Generic
--------------------------------------------------------

关键字的使用
关键字在程序中有固定的含义,因此不能作为标识符(如变量名或函数名)使用。关键字定义了程序控制流、数据类型、存储类型等。

2.2 标识符

标识符是程序中变量、函数、数组等的名称。C 语言的标识符命名规则如下:

  1. 标识符只能由字母(A-Z、a-z)、数字(0-9)和下划线(_)组成,但第一个字符不能是数字。
  2. C 语言对标识符的大小写敏感,因此 variableVariable 是不同的标识符。
  3. 标识符不能使用关键字名称。

有效的标识符例子

  • total_sum
  • averageScore
  • _temp
  • result1

2.3 常量

常量是指程序运行期间其值不可改变的数据。常量有多种类型,主要包括:

  • 整型常量:如 10-5
  • 浮点型常量:如 3.14-0.5
  • 字符常量:如 'a''1'
  • 字符串常量:如 "Hello, World!"

声明常量的方式通常使用 const 关键字:

const int MAX_SIZE = 100;  // 整型常量
const float PI = 3.14159;  // 浮点型常量
const char NEWLINE = '\n';  // 字符常量

2.4 注释

C 语言支持两种类型的注释:

  1. 单行注释:以 // 开始,注释内容直到行尾。

    // 这是一个单行注释
    
  2. 多行注释:以 /* 开始,以 */ 结束,可以跨越多行。

    /*
      这是一个多行注释
      可以写很多行
    */
    

注意

  • 注释不能嵌套,即不能在一个注释中再使用注释符号。
  • 注释对程序的执行没有影响,它们仅用于代码说明。

3. 语句与表达式

在 C 语言中,语句是执行单元,而表达式是由运算符、变量和常量组成的表达式片段。

3.1 语句

C 语言中的语句包括:

  • 表达式语句:如赋值语句、函数调用语句。

    sum = a + b;
    printf("Hello, World!\n");
    
  • 控制语句:如条件语句和循环语句。

    if (x > y) {
        printf("x is greater than y");
    }
    

3.2 表达式

表达式是由操作数(常量、变量)和运算符组成的运算单位。常见的运算符包括:

  • 算术运算符+-*/%
  • 关系运算符==!=><>=<=
  • 逻辑运算符&&||!

例如:

int a = 5, b = 10;
int sum = a + b;  // 使用算术运算符 +

4. 分隔符与空格

4.1 分隔符

C 语言中的分隔符用于分隔语句、表达式或声明。常见的分隔符包括:

  • 逗号(,):分隔变量或函数参数。
  • 分号(;):结束语句。
  • 括号(()):分组表达式或函数调用。
  • 花括号({}):定义代码块。
  • 方括号([]):表示数组下标。

4.2 空格与空白符

空格在 C 语言中主要用来分隔关键字、标识符和操作符等,帮助编译器识别

标签:语句,常量,int,基础,C语言,语法,关键字,标识符,语言
From: https://blog.csdn.net/wzt001005/article/details/144791907

相关文章

  • 3. C语言 数据类型
    本章目录:前言:C语言中的数据类型分类1.基本数据类型1.1整数类型1.2浮点类型1.3字符型常量1.4字符串常量2.枚举类型3.void类型void类型的使用示例:4.类型转换4.1隐式类型转换4.2显式类型转换类型转换的注意事项5.小结前言:C语言是一种强类型语言,其中每......
  • 1. C语言程序结构与编译执行
    本章目录:前言C程序的基本结构示例代码代码解析编译和运行C程序保存源代码编译源代码运行可执行文件注意事项目标文件路径和名称避免程序一闪而过使用批处理文件避免闪退总结前言在深入学习C语言编程之前,了解其基本构建块和程序结构是非常重要的。本文将详细介绍......
  • 软件技术开发基础实训室设备
    软件开发实训平台该平台采用B/S结构,运用springcloud微服务技术,构建多个稳定、高效的服务模块,提供SSO单点登录服务,并使用统一的身份认证鉴权。平台基于k8s实现公有云、混合云、私有云多种部署方式,提供在线java、python等后台语言,实现真正的云开发,开箱即用,主要模块有课程制......
  • day01_Spark基础
    文章目录day01_Spark基础课程笔记一、今日课程内容二、Spark基本介绍(了解)1、Spark是什么1.1定义1.2Spark与MapReduce对比1.3线程和进程对比2、Spark的发展3、Spark特点4、Spark框架模块三、Spark环境安装(操作)1、虚拟机配置2、Local[K]模式安装环境启动:访问页面:3......
  • 【Access语法】SQL连接查询
    在MicrosoftAccess中,联合查询(也称为JOIN查询)是用于从两个或多个相关表中检索数据的一种方法。通过使用联合查询,您可以将来自不同表的数据组合在一起,以便在一个结果集中进行查看和分析。联合查询的类型Access支持几种不同类型的联合查询,包括:内连接(InnerJoin):返回两个表中......
  • 神经辐射场ReNF基础
    定义神经辐射场是一种面向三维隐式空间建模的深度学习模型,这种深度学习模型又称全连接神经网络(又称多层感知机)。NeRF所要做的任务是NovelViewSynthesis,一般翻译为新视角合成任务,定义是:在已知视角下对场景进行一系列的捕获(包括拍摄到的图像,以及每张图像对应的内外参),不需要......
  • 【Access语法】SQL嵌套查询
    SQL子查询(Subquery)是在一个查询语句中嵌套另一个查询语句的功能。子查询可以出现在SELECT、FROM、WHERE或HAVING等子句中,用于返回单个值、一行值或一列值,以供外部查询使用。多层嵌套查询(也称为多级嵌套查询或深度嵌套查询)是指在一个查询语句中嵌套了多个子查询的情况。这种查询结......
  • C++基础之移动语义(Move Semantic)
    文章目录引言Move语义的定义与优点示例:拷贝和移动操作应用场景Move后的变量自定义类中如何支持MoveMove语义的误区`std::move`并不移动数据移动后继续使用对象对整型或者布尔类型无效总结参考链接引言在现代C++中,Move语义通过优化资源管理和减少内存......
  • 中国海洋大学-软件工程理论基础coq实验2
    软件工程理论基础实验2:Coq中的命题和证明实验目的学习Coq中命题和证明的表示方法以及证明方法。实验内容根据课件及给定Coq文件(CoqCode2.v)学习Coq中命题和证明的表示方法及证明方法。掌握intros,apply等证明策略的使用方法。学会在Coq中对命题进行定义和声明及证明命题......
  • 使用ReasonML实现基础OCR文字识别
    在本文中,我们使用ReasonML语言实现一个简单的OCR文字识别程序。ReasonML是OCaml的语法变体,常用于构建高性能的前端或后端应用。我们将结合TesseractOCR库实现文字识别功能。环境准备安装ReasonML:bashnpminstall-gbs-platform安装Tesseract库:bashnpminstalltesserac......