(14)基础语法--本节会讲C语言的基本组成单位:分隔符 - 标识符- 字面值常量- 运算符-关键字-注释的知识!《小鹅说 C 语言》

C语言基本组成单位详解


暂时无法在飞书文档外展示此内容

1、C 实例 – Hello World

#include <stdio.h>                 //头文件
                                   //空白行
/* 我们的第一个 C 程序 */            //注释
int main()                         //函数
{                                  //函数体开始
   printf("Hello, World! \n");     //输出语句
   return 0;                       //结束并返回语句
}                                  //函数体结束

2、基本组成单位 – 令牌

在 C 语言中,令牌(Token)是程序的基本组成单位,编译器通过对源代码进行词法分析,将代码分解成一个个的令牌

C 语言的令牌主要包括以下几种类型:

  • 分隔符(Separators)
  • 标识符(Identifiers)
  • 字面值常量(Constants)
  • 运算符(Operators)
  • 关键字(Keyword),又称为 保留字
  • 其它符号
2.1、分隔符

分隔符用于分隔语句和表达式,常见的分隔符包括:

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

注意 1:

在 C 程序中,分号 ; 是语句结束符,也就是说,每个语句必须以分号结束,它表明一个逻辑实体的结束。

例如,下面是两个不同的语句:

printf("Hello, World! \n");
return 0;

个单独的分号也可以作为一个空语句,表示什么都不做。例如:

;

注意 2:

C 中只包含空格的行,被称为空白行,C 编译器会完全忽略它。

在 C 中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。

比如,在下面的语句中:

int age;

在这里,int 和 age 之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。

2.2、标识符
  • 标识符是程序中变量、函数、数组等的名字。
  • 标识符由字母(大写或小写)、数字和下划线组成,但第一个字符必须是字母或下划线,不能是数字
  • 以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
  • 标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。(注:C 语言中字母是区分大小写的,因此 score、Score、SCORE 分别代表三个不同的标识符)
  • C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。下面列出几个有效的标识符:
a_123  myname50   _temp  RetVal
2.3、常量

定义:固定值,分为整常量、浮点常量、字符常量和字符串常量。

例子:

  • 整数常量:100
  • 浮点常量:3.14
  • 字符常量:‘A’
  • 字符串常量:“Hello, World!”
2.4、运算符(Operators)

运算符用于执行各种操作,如算术运算、逻辑运算、比较运算等。

C 语言中的运算符种类繁多,常见的包括:

  • 算术运算符:+, -, *, /, %
  • 关系运算符:==, !=, >, <, >=, <=
  • 逻辑运算符:&&, ||, !
  • 位运算符:&, |, ^, ~, <<, >>
  • 赋值运算符:=, +=, -=, *=, /=, %=
  • 其他运算符:sizeof, ?:, &, *, ->, .
2.5、关键字

下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

关键字说明
auto声明自动变量
break跳出当前循环
case开关语句分支
char声明字符型变量或函数返回值类型
const定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue结束当前循环,开始下一轮循环
default开关语句中的"其它"分支
do循环语句的循环体
double声明双精度浮点型变量或函数返回值类型
else条件语句否定分支(与 if 连用)
enum声明枚举类型
extern声明变量或函数是在其它文件或本文件的其他位置定义
float声明浮点型变量或函数返回值类型
for循环语句
goto无条件跳转语句
if条件语句
int声明整型变量或函数
long声明长整型变量或函数返回值类型
register声明寄存器变量
return子程序返回语句(可以带参数,也可不带参数)
short声明短整型变量或函数
signed声明有符号类型变量或函数
sizeof计算数据类型或变量长度(即所占字节数)
static声明静态变量
struct声明结构体类型
switch用于开关语句
typedef用以给数据类型取别名
unsigned声明无符号类型变量或函数
union声明共用体类型
void声明函数无返回值或无参数,声明无类型指针
volatile说明变量在程序执行中可被隐含地改变
while循环语句的循环条件

C99 新增关键字:

1999 年 12 月 16 日,ISO 推出了 C99 标准,该标准新增了 5 个 C 语言关键字:

_Bool_Complex_Imaginaryinlinerestrict

C11 新增关键字:

2011 年 12 月 8 日,ISO 发布 C 语言的新标准 C11,该标准新增了 7 个 C 语言关键字:

_Alignas_Alignof_Atomic_Generic_Noreturn_Static_assert_Thread_local
2.6、其它符号
2.6.1、注释

1. 什么是注释?

  • 注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。
  • 注释是给程序员⾃⼰,或者其他程序员看的。
  • 好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。

2. C 语言有两种注释方式

(1) // 的形式

  • 将注释放在双斜杠 // 后⾯,从双斜杠到⾏尾都属于注释。
  • 这种注释只能是单⾏,可以放在⾏⾸,也可以放在⼀⾏语句的结尾。
  • 这是C99标准新增的语法。
// 单行注释

(2) /\* \*/ 的形式

  • 这种格式的注释可以单行或多行。
  • **注意:**这种注释⼀定不能忘记写结束符号 */ ,否则很容易导致错误。
  • **注意:**您不能在注释内嵌套注释,注释也不能出现在字符串或字符值中。
/* 单行注释 */
/* 
 多行注释
 多行注释
 多行注释
 */
2.6.2、注释编译时是什么样的?

编译时,注释会被替换成⼀个空格,所以 min/* space */Value 会变成 min Value ,⽽不是 minValue 。


每日一更!

公众号、优快云等博客:小鹅编程笔记

日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍基于Matlab代码实现的四轴飞行器动力学建模与仿真方法。研究构建了考虑非线性特性的飞行器数学模型,涵盖姿态动力学与运动学方程,实现了三自由度(滚转、俯仰、偏航)的精确模拟。文中详细阐述了系统建模过程、控制算法设计思路及仿真结果分析,帮助读者深入理解四轴飞行器的飞行动力学特性与控制机制;同时,该模拟器可用于算法验证、控制器设计与教学实验。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及无人机相关领域的工程技术人员,尤其适合从事飞行器建模、控制算法开发的研究生和初级研究人员。; 使用场景及目标:①用于四轴飞行器非线性动力学特性的学习与仿真验证;②作为控制器(如PID、LQR、MPC等)设计与测试的仿真平台;③支持无人机控制系统教学与科研项目开发,提升对姿态控制与系统仿真的理解。; 阅读建议:建议读者结合Matlab代码逐模块分析,重点关注动力学方程的推导与实现方式,动手运行并调试仿真程序,以加深对飞行器姿态控制过程的理解。同时可扩展为六自由度模型或加入外部干扰以增强仿真真实性。
基于分布式模型预测控制DMPC的多智能体点对点过渡轨迹生成研究(Matlab代码实现)内容概要:本文围绕“基于分布式模型预测控制(DMPC)的多智能体点对点过渡轨迹生成研究”展开,重点介绍如何利用DMPC方法实现多智能体系统在复杂环境下的协同轨迹规划与控制。文中结合Matlab代码实现,详细阐述了DMPC的基本原理、数学建模过程以及在多智能体系统中的具体应用,涵盖点对点转移、避障处理、状态约束与通信拓扑等关键技术环节。研究强调算法的分布式特性,提升系统的可扩展性与鲁棒性,适用于多无人机、无人车编队等场景。同时,文档列举了大量相关科研方向与代码资源,展示了DMPC在路径规划、协同控制、电力系统、信号处理等多领域的广泛应用。; 适合人群:具备一定自动化、控制理论或机器人学基础的研究生、科研人员及从事智能系统开发的工程技术人员;熟悉Matlab/Simulink仿真环境,对多智能体协同控制、优化算法有一定兴趣或研究需求的人员。; 使用场景及目标:①用于多智能体系统的轨迹生成与协同控制研究,如无人机集群、无人驾驶车队等;②作为DMPC算法学习与仿真实践的参考资料,帮助理解分布式优化与模型预测控制的结合机制;③支撑科研论文复现、毕业设计或项目开发中的算法验证与性能对比。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注DMPC的优化建模、约束处理与信息交互机制;按文档结构逐步学习,同时参考文中提及的路径规划、协同控制等相关案例,加深对分布式控制系统的整体理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹅编程笔记

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值