当前位置: 首页 > 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后缀运算符

相关文章:

  • 传输层:UDP协议
  • 迅龙3号基于兆讯MH22D3适配CST328多点触摸驱动开发笔记
  • 仿正点原子驱动BMP280气压传感器实例
  • 深度学习 自然语言处理(RNN) day_02
  • JavaWeb 前端开发
  • 极限学习机进行电厂相关数据预测
  • Tomcat与纯 Java Socket 实现远程通信的区别
  • SD-HOST Controller design-----SD CLK 设计
  • python中的单例与实例
  • 紫光同创FPGA实现AD7606数据采集转UDP网络传输,提供PDS工程源码和技术支持和QT上位机
  • 基于C#+SQL Server开发(WinForm)租房管理系统
  • (2)python开发经验
  • 【React中函数组件和类组件区别】
  • 无需翻墙!3D 优质前端模板分享
  • el-select 结合 el-tree:树形下拉数据
  • AI 检测原创论文:技术迷思与教育本质的悖论思考
  • 部署安装git-2.49.0.tar.xz
  • Profibus DP主站转Modbus RTU/TCP如何把E+H流量计接入到modbus
  • BGP联邦实验
  • 【deekseek】TCP Offload Engine
  • 西北大学副校长成陕西首富?旗下巨子生物去年净利超20亿,到底持股多少
  • 中国女足将于5月17日至6月2日赴美国集训并参加邀请赛
  • 马上评丨火车穿村而过多人被撞身亡,亡羊补牢慢不得
  • 全国汽车以旧换新补贴申请量突破1000万份
  • 水豚“豆包”出逃已40天,扬州茱萸湾景区追加悬赏
  • 香港将展“天方奇毯”,从地毯珍品看伊斯兰艺术