[C.C++] C语言基本语法

1031 0
Honkers 2025-4-29 19:09:43 | 显示全部楼层 |阅读模式

1. 引言

C语言是一种通用的、过程式的编程语言,广泛应用于系统编程、嵌入式开发和高性能计算等领域。C语言的语法简洁、功能强大,是学习其他高级编程语言的基础。本文档将详细介绍C语言的基本语法,包括变量、数据类型、运算符和控制结构。

2. 变量

2.1 变量的定义

变量是程序中用于存储数据的容器。在C语言中,变量必须先定义后使用。定义变量时需要指定变量的数据类型和名称。

  1. int age; // 定义一个整型变量age
  2. float salary; // 定义一个浮点型变量salary
  3. char grade; // 定义一个字符型变量grade
复制代码

2.2 变量的命名规则

  • 变量名只能由字母、数字和下划线组成。

  • 变量名不能以数字开头。

  • 变量名不能是C语言的关键字(如int、float、if等)。

  • 变量名区分大小写。

示例:

  1. int age; // 合法
  2. int _age; // 合法
  3. int 1age; // 非法,不能以数字开头
  4. int float; // 非法,float是关键字
复制代码

2.3 变量的作用域

变量的作用域是指变量在程序中可见的范围。C语言中的变量作用域分为以下几种:

  • 局部变量:在函数或代码块内部定义的变量,作用域仅限于该函数或代码块。

  • 全局变量:在函数外部定义的变量,作用域为整个程序。

示例:

  1. #include <stdio.h>
  2. int globalVar = 10; // 全局变量
  3. void func() {
  4. int localVar = 20; // 局部变量
  5. printf("Global Variable: %d\n", globalVar);
  6. printf("Local Variable: %d\n", localVar);
  7. }
  8. int main() {
  9. func();
  10. // printf("%d\n", localVar); // 错误,localVar在此处不可见
  11. return 0;
  12. }
复制代码

2.4 变量的生命周期

变量的生命周期是指变量从创建到销毁的时间段。

  • 局部变量:生命周期从进入函数或代码块开始,到退出函数或代码块结束。

  • 全局变量:生命周期从程序开始运行到程序结束。

3. 数据类型

3.1 基本数据类型

C语言中的基本数据类型包括:

  • 整型:int、short、long、long long

  • 浮点型:float、double、long double

  • 字符型:char

示例:

  1. int a = 10; // 整型
  2. short b = 20; // 短整型
  3. long c = 100000L; // 长整型
  4. float d = 3.14f; // 单精度浮点型
  5. double e = 3.1415926; // 双精度浮点型
  6. char f = 'A'; // 字符型
复制代码

3.2 派生数据类型

C语言中的派生数据类型包括:

  • 数组:存储相同类型的数据。

  • 指针:存储变量的内存地址。

  • 结构体:存储不同类型的数据。

  • 联合体:共享内存空间的不同类型数据。

示例:

  1. int arr[5] = {1, 2, 3, 4, 5}; // 数组
  2. int *ptr = &arr[0]; // 指针
  3. struct Point { int x; int y; }; // 结构体
  4. union Data { int i; float f; }; // 联合体
复制代码

3.3 类型修饰符

C语言中的类型修饰符用于改变变量的存储方式或行为:

  • signed:表示有符号数(默认)。

  • unsigned:表示无符号数。

  • short:表示短整型。

  • long:表示长整型。

示例:

  1. unsigned int a = 10; // 无符号整型
  2. signed char b = -10; // 有符号字符型
  3. long double c = 3.14; // 长双精度浮点型
复制代码

3.4 类型转换

C语言中的类型转换分为隐式转换和显式转换:

  • 隐式转换:由编译器自动完成。

  • 显式转换:通过强制类型转换运算符(type)完成。

示例:

  1. int a = 10;
  2. float b = 3.14;
  3. float c = a + b; // 隐式转换,a被转换为float
  4. int d = (int)b; // 显式转换,b被转换为int
复制代码

4. 运算符

4.1 算术运算符

算术运算符用于执行基本的数学运算:

  • +:加法

  • -:减法

  • *:乘法

  • /:除法

  • %:取模(求余数)

示例:

  1. int a = 10, b = 3;
  2. int sum = a + b; // 13
  3. int diff = a - b; // 7
  4. int prod = a * b; // 30
  5. int quot = a / b; // 3
  6. int rem = a % b; // 1
复制代码

4.2 关系运算符

关系运算符用于比较两个值的大小:

  • ==:等于

  • !=:不等于

  • >:大于

  • <:小于

  • >=:大于等于

  • <=:小于等于

示例:

  1. int a = 10, b = 20;
  2. if (a == b) { /* ... */ } // false
  3. if (a < b) { /* ... */ } // true
复制代码

4.3 逻辑运算符

逻辑运算符用于组合多个条件:

  • &&:逻辑与

  • ||:逻辑或

  • !:逻辑非

示例:

  1. int a = 10, b = 20;
  2. if (a > 0 && b > 0) { /* ... */ } // true
  3. if (a > 0 || b < 0) { /* ... */ } // true
  4. if (!(a == b)) { /* ... */ } // true
复制代码

4.4 位运算符

位运算符用于对二进制位进行操作:

  • &:按位与

  • |:按位或

  • ^:按位异或

  • ~:按位取反

  • <<:左移

  • >>:右移

示例:

  1. int a = 5, b = 3;
  2. int and = a & b; // 1 (0101 & 0011 = 0001)
  3. int or = a | b; // 7 (0101 | 0011 = 0111)
  4. int xor = a ^ b; // 6 (0101 ^ 0011 = 0110)
  5. int not = ~a; // -6 (按位取反)
  6. int leftShift = a << 1; // 10 (0101 << 1 = 1010)
  7. int rightShift = a >> 1;// 2 (0101 >> 1 = 0010)
复制代码

4.5 赋值运算符

赋值运算符用于给变量赋值:

  • =:简单赋值

  • +=、-=、*=、/=、%=:复合赋值

示例:

  1. int a = 10;
  2. a += 5; // a = a + 5 → 15
  3. a *= 2; // a = a * 2 → 30
复制代码

4.6 其他运算符

  • 条件运算符:? :

  • 逗号运算符:,

  • sizeof运算符:sizeof

示例:

  1. int a = 10, b = 20;
  2. int max = (a > b) ? a : b; // 条件运算符
  3. int c = (a++, b++); // 逗号运算符
  4. int size = sizeof(a); // sizeof运算符
复制代码

5. 控制结构

5.1 条件语句(if、else if、else)

条件语句用于根据条件执行不同的代码块。

语法:

  1. if (condition1) {
  2. // 条件1为真时执行
  3. } else if (condition2) {
  4. // 条件2为真时执行
  5. } else {
  6. // 其他情况执行
  7. }
复制代码

示例:

  1. int score = 85;
  2. if (score >= 90) {
  3. printf("A\n");
  4. } else if (score >= 80) {
  5. printf("B\n");
  6. } else {
  7. printf("C\n");
  8. }
复制代码

5.2 循环语句(for、while、do-while)

循环语句用于重复执行代码块。

for循环

语法:

  1. for (初始化; 条件; 更新) {
  2. // 循环体
  3. }
复制代码

示例:

  1. for (int i = 0; i < 5; i++) {
  2. printf("%d\n", i);
  3. }
复制代码
while循环

语法:

  1. while (条件) {
  2. // 循环体
  3. }
复制代码

示例:

  1. int i = 0;
  2. while (i < 5) {
  3. printf("%d\n", i);
  4. i++;
  5. }
复制代码
do-while循环

语法:

  1. do {
  2. // 循环体
  3. } while (条件);
复制代码

示例:

  1. int i = 0;
  2. do {
  3. printf("%d\n", i);
  4. i++;
  5. } while (i < 5);
复制代码

5.3 跳转语句(break、continue、goto)

跳转语句用于改变程序的执行流程。

break

用于退出循环或switch语句。

示例:

  1. for (int i = 0; i < 10; i++) {
  2. if (i == 5) {
  3. break; // 退出循环
  4. }
  5. printf("%d\n", i);
  6. }
复制代码
continue

用于跳过当前循环的剩余部分,进入下一次循环。

示例:

  1. for (int i = 0; i < 10; i++) {
  2. if (i % 2 == 0) {
  3. continue; // 跳过偶数
  4. }
  5. printf("%d\n", i);
  6. }
复制代码
goto

用于无条件跳转到指定的标签。

示例:

  1. int i = 0;
  2. start:
  3. if (i < 5) {
  4. printf("%d\n", i);
  5. i++;
  6. goto start; // 跳转到start标签
  7. }
复制代码

6. 总结

本文档详细介绍了C语言的基本语法,包括变量、数据类型、运算符和控制结构。掌握这些基础知识是学习C语言编程的第一步,也是进一步学习高级编程技术的基础。希望本文档能够帮助大家快速入门C语言编程!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行