C语言基本语法

1. 引言

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

2. 变量

2.1 变量的定义

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

int age;        // 定义一个整型变量age
float salary;   // 定义一个浮点型变量salary
char grade;     // 定义一个字符型变量grade

2.2 变量的命名规则

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

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

  • 变量名不能是C语言的关键字(如intfloatif等)。

  • 变量名区分大小写。

示例:

int age;        // 合法
int _age;       // 合法
int 1age;       // 非法,不能以数字开头
int float;      // 非法,float是关键字

2.3 变量的作用域

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

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

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

示例:

#include <stdio.h>

int globalVar = 10;  // 全局变量

void func() {
    int localVar = 20;  // 局部变量
    printf("Global Variable: %d\n", globalVar);
    printf("Local Variable: %d\n", localVar);
}

int main() {
    func();
    // printf("%d\n", localVar);  // 错误,localVar在此处不可见
    return 0;
}

2.4 变量的生命周期

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

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

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

3. 数据类型

3.1 基本数据类型

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

  • 整型:intshortlonglong long

  • 浮点型:floatdoublelong double

  • 字符型:char

示例:

int a = 10;             // 整型
short b = 20;           // 短整型
long c = 100000L;       // 长整型
float d = 3.14f;        // 单精度浮点型
double e = 3.1415926;   // 双精度浮点型
char f = 'A';           // 字符型

3.2 派生数据类型

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

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

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

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

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

示例:

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

3.3 类型修饰符

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

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

  • unsigned:表示无符号数。

  • short:表示短整型。

  • long:表示长整型。

示例:

unsigned int a = 10;    // 无符号整型
signed char b = -10;    // 有符号字符型
long double c = 3.14;   // 长双精度浮点型

3.4 类型转换

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

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

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

示例:

int a = 10;
float b = 3.14;
float c = a + b;        // 隐式转换,a被转换为float
int d = (int)b;         // 显式转换,b被转换为int

4. 运算符

4.1 算术运算符

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

  • +:加法

  • -:减法

  • *:乘法

  • /:除法

  • %:取模(求余数)

示例:

int a = 10, b = 3;
int sum = a + b;        // 13
int diff = a - b;       // 7
int prod = a * b;       // 30
int quot = a / b;       // 3
int rem = a % b;        // 1

4.2 关系运算符

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

  • ==:等于

  • !=:不等于

  • >:大于

  • <:小于

  • >=:大于等于

  • <=:小于等于

示例:

int a = 10, b = 20;
if (a == b) { /* ... */ }  // false
if (a < b)  { /* ... */ }  // true

4.3 逻辑运算符

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

  • &&:逻辑与

  • ||:逻辑或

  • !:逻辑非

示例:

int a = 10, b = 20;
if (a > 0 && b > 0) { /* ... */ }  // true
if (a > 0 || b < 0)  { /* ... */ }  // true
if (!(a == b))       { /* ... */ }  // true

4.4 位运算符

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

  • &:按位与

  • |:按位或

  • ^:按位异或

  • ~:按位取反

  • <<:左移

  • >>:右移

示例:

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

4.5 赋值运算符

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

  • =:简单赋值

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

示例:

int a = 10;
a += 5;  // a = a + 5 → 15
a *= 2;  // a = a * 2 → 30

4.6 其他运算符

  • 条件运算符:? :

  • 逗号运算符:,

  • sizeof运算符:sizeof

示例:

int a = 10, b = 20;
int max = (a > b) ? a : b;  // 条件运算符
int c = (a++, b++);         // 逗号运算符
int size = sizeof(a);       // sizeof运算符

5. 控制结构

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

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

语法:

if (condition1) {
    // 条件1为真时执行
} else if (condition2) {
    // 条件2为真时执行
} else {
    // 其他情况执行
}

示例:

int score = 85;
if (score >= 90) {
    printf("A\n");
} else if (score >= 80) {
    printf("B\n");
} else {
    printf("C\n");
}

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

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

for循环

语法:

for (初始化; 条件; 更新) {
    // 循环体
}

示例:

for (int i = 0; i < 5; i++) {
    printf("%d\n", i);
}
while循环

语法:

while (条件) {
    // 循环体
}

示例:

int i = 0;
while (i < 5) {
    printf("%d\n", i);
    i++;
}
do-while循环

语法:

do {
    // 循环体
} while (条件);

示例:

int i = 0;
do {
    printf("%d\n", i);
    i++;
} while (i < 5);

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

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

break

用于退出循环或switch语句。

示例:

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break;  // 退出循环
    }
    printf("%d\n", i);
}
continue

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

示例:

for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        continue;  // 跳过偶数
    }
    printf("%d\n", i);
}
goto

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

示例:

int i = 0;
start:
if (i < 5) {
    printf("%d\n", i);
    i++;
    goto start;  // 跳转到start标签
}

6. 总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值