当前位置: 首页 > news >正文

C 语言_基础语法全解析_深度细化版

一、C 语言基本结构

1.1 程序组成部分

一个完整的 C 程序由以下部分组成:

  1. 预处理指令:以#开头,在编译前处理

    #include <stdio.h>  // 引入标准库
    #define PI 3.14159  // 定义常量
    
  2. 全局变量声明:在所有函数外部定义的变量

    int globalVar = 10;  // 全局变量
    
  3. 函数定义:程序的基本模块

    int add(int a, int b) {  // 函数定义return a + b;
    }
    
  4. 主函数:程序入口点

    int main() {  // 主函数// 程序执行代码return 0;
    }
    
1.2 编译与执行流程

C 程序的生命周期:

  1. 编辑:编写.c源文件
  2. 预处理:处理#指令,生成.i文件
  3. 编译:将.i文件转换为汇编代码.s
  4. 汇编:将汇编代码转换为目标代码.o
  5. 链接:将目标代码与库文件链接,生成可执行文件.exe

二、数据类型与变量

2.1 基本数据类型
类型描述范围示例
char单字节字符-128 ~ 127 或 0 ~ 255
short短整型-32,768 ~ 32,767
int整型-2,147,483,648 ~ 2,147,483,647
long长整型至少与int相同范围
float单精度浮点数6-7 位有效数字
double双精度浮点数15-16 位有效数字
void无类型用于函数返回值或指针
2.2 变量存储类

C 语言有四种存储类:

  1. auto:默认存储类,局部变量

    auto int a = 10;  // 等价于 int a = 10;
    
  2. static:静态变量,延长生命周期

    void func() {static int count = 0;  // 仅初始化一次count++;
    }
    
  3. extern:声明外部变量

    extern int sharedVar;  // 声明在其他文件中定义的变量
    
  4. register:建议编译器将变量存储在寄存器中

    register int speed;  // 用于高频访问的变量
    

三、运算符深度解析(含优先级)

3.1 算术运算符
运算符描述示例结果
+加法5 + 38
-减法5 - 32
*乘法5 * 315
/除法5 / 31
%取模(取余)5 % 32
++自增a=5; a++a=6
--自减a=5; a--a=4

注意事项

  • 整数除法会截断小数部分
  • 自增 / 自减运算符的前置和后置形式有区别:
    int a = 5;
    printf("%d", a++);  // 输出5,先使用后自增
    printf("%d", ++a);  // 输出7,先自增后使用
    
3.2 关系运算符
运算符描述示例结果
==等于5 == 30(假)
!=不等于5 != 31(真)
>大于5 > 31(真)
<小于5 < 30(假)
>=大于等于5 >= 31(真)
<=小于等于5 <= 30(假)
3.3 逻辑运算符
运算符描述示例结果
&&逻辑与(5 > 3) && (4 > 2)1(真)
``逻辑或`(5 < 3)(4 > 2)`1(真)
!逻辑非!(5 > 3)0(假)

逻辑短路特性

// 如果第一个条件为假,第二个条件不会执行
if (0 && (1/0 == 0)) {  // 不会触发除零错误printf("不会执行");
}// 如果第一个条件为真,第二个条件不会执行
if (1 || (1/0 == 0)) {  // 不会触发除零错误printf("会执行");
}
3.4 位运算符
运算符描述示例二进制解释结果
&按位与5 & 30101 & 00110001 (1)
``按位或`53``01010011`0111 (7)
^按位异或5 ^ 30101 ^ 00110110 (6)
~按位取反~5~01011010 (-6)
<<左移5 << 20101 << 2010100 (20)
>>右移5 >> 10101 >> 10010 (2)
3.5 赋值运算符
运算符等价形式示例结果
=a = 5a=5
+=a = a + ...a = 5; a += 3a=8
-=a = a - ...a = 5; a -= 3a=2
*=a = a * ...a = 5; a *= 3a=15
/=a = a / ...a = 6; a /= 3a=2
%=a = a % ...a = 5; a %= 3a=2
3.6 条件运算符(三元运算符)

语法条件 ? 表达式1 : 表达式2

示例

int a = 5, b = 3;
int max = (a > b) ? a : b;  // max = 5
3.7 运算符优先级表
优先级运算符类型具体运算符结合性
1后缀运算符
http://www.xdnf.cn/news/423253.html

相关文章:

  • 2025年项目管理软件革命:AI与空间计算如何重塑企业协作格局
  • golang 定时器
  • C语言| extern的用法作用
  • maven工程跳过@SpringTest
  • MySQL全局优化
  • 对端服务器重装系统之后远程SSH无法登录的问题
  • c 中的哈希表
  • 前端——布局方式
  • redis数据结构-10(ZREM、ZSCORE、ZINCRBY)
  • SpringSecurity当中的CSRF防范详解
  • docker(一)前言:高并发服务端技术架构的演进
  • Lighthouse Core Web Vitals 指标详解与优化指南
  • flea-cache使用之Redis哨兵模式接入
  • 推荐几个常用免费的文本转语音工具
  • PYTHON训练营DAY24
  • BGP联邦实验
  • Axure高级交互设计:文本框循环赋值实现新增、修改和查看
  • python视频拆帧并根据所选区域保存指定区域
  • Web 架构之攻击应急方案
  • workman进阶应用 GatewayWorker 仿微信 做聊天室
  • Spring WebFlux 与 WebClient 使用指南
  • Linux513 rsync本地传输 跨设备传输 一
  • 原型和原型链
  • list基础用法
  • API安全
  • 【PmHub后端篇】PmHub中基于自定义注解和AOP的服务接口鉴权与内部认证实现
  • 【fastadmin开发实战】在前端页面中使用bootstraptable以及表格中实现文件上传
  • 我的五周年创作纪念日
  • 系统稳定性之上线三板斧
  • 嵌入式开发学习日志(数据结构--顺序结构单链表)Day19