- C语言简介
C语言是一种结构化的、过程化的编程语言,广泛用于系统软件开发,如操作系统、编译器等。其特点是简洁、高效,能直接操作硬件,是学习编程的基础语言之一。 基本语法
程序结构:C语言程序由头文件、主函数main()和其他函数组成。
注释://用于单行注释,/ ... /用于多行注释。
标识符:变量、函数名、常量名的命名规则,必须以字母或下划线开头。#include <stdio.h> int main() { // 单行注释 printf("Hello, World!\n"); // 输出Hello, World! return 0; }
- 数据类型
基本数据类型:int(整数),float(浮点数),double(双精度浮点数),char(字符)。
修饰符:signed、unsigned、short、long可修饰基本数据类型。
枚举类型:定义一组命名常量,增加代码可读性。
#include <stdio.h>
int main()
{
int a = 10; // 整型
float b = 5.5; // 浮点型
char c = 'A'; // 字符型
enum Day {MON, TUE, WED}; // 枚举类型
enum Day today = MON;
printf("整数: %d, 浮点数: %.1f, 字符: %c, 枚举: %d\n", a, b, c, today);
return 0;
}
- 运算符与表达式
算术运算符:+, -, *, /, %(取模)。
关系运算符:==, !=, <, >, <=, >=。
逻辑运算符:&&(与),||(或),!(非)。
位运算符:&, |, ^, ~, <<, >>。
赋值运算符:=, +=, -=, *=, /=, %= 等。
自增自减运算符:++, --。
#include <stdio.h>
int main()
{
int a = 10, b = 20;
int sum = a + b; // 算术运算
int isEqual = (a == b); // 关系运算
printf("和: %d, 相等: %d\n", sum, isEqual); // 输出和与相等结果
return 0;
}
控制结构
条件语句:if, else, switch。
循环语句:while, do...while, for。
跳转语句:break, continue, goto。#include <stdio.h> int main() { int num = 5; // if 语句 if (num > 0) { printf("正数\n"); } else { printf("非正数\n"); } // for 循环 for (int i = 0; i < 5; i++) { printf("计数: %d\n", i); } // switch 语句 switch (num) { case 1: printf("数字是 1\n"); break; case 5: printf("数字是 5\n"); break; default: printf("其他数字\n"); } return 0; }
数组
数组是相同数据类型元素的集合,可以是单维、二维或多维数组。#include <stdio.h> int main() { int numbers[5] = {1, 2, 3, 4, 5}; // 定义一维数组 int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}}; // 定义二维数组 printf("一维数组的第一个元素: %d\n", numbers[0]); printf("二维数组的元素: %d\n", matrix[1][2]); // 输出 6 return 0; }
字符串
C语言没有专门的字符串类型,字符串本质上是字符数组,以\0(空字符)结尾。#include <stdio.h> int main() { char str[] = "Hello"; printf("字符串: %s\n", str); return 0; }
函数
定义和调用:函数用于将代码模块化,避免重复代码,提高可维护性。
参数传递:C语言支持按值传递和按地址传递。#include <stdio.h> // 函数定义 int add(int x, int y) { return x + y; } int main() { int result = add(10, 20); // 函数调用 printf("函数结果: %d\n", result); return 0; }
指针
定义:指针是存储变量地址的变量。
指针与数组:指针可以操作数组,甚至可以作为函数参数来传递数组。
空指针与悬空指针:必须正确初始化指针,避免野指针和悬空指针。#include <stdio.h> int main() { int a = 10; int *p = &a; // 定义指针并指向变量 a 的地址 printf("变量的值: %d, 指针指向的值: %d\n", a, *p); return 0; }
结构体
定义结构体:结构体是将不同类型数据组合在一起的用户自定义数据类型。
结构体数组:结构体也可以形成数组,用于存储多个类似结构的数据。#include <stdio.h> // 定义结构体 struct Student { char name[20]; int age; float score; }; int main() { struct Student student1 = {"张三", 18, 89.5}; // 初始化结构体 printf("学生姓名: %s, 年龄: %d, 分数: %.2f\n", student1.name, student1.age, student1.score); return 0; }
文件操作
文件指针:FILE *用于文件操作。
基本操作:fopen, fclose, fread, fwrite, fprintf, fscanf等函数。#include <stdio.h> int main() { FILE *fp = fopen("example.txt", "w"); // 打开文件进行写操作 if (fp != NULL) { fprintf(fp, "Hello, file!"); // 写入文件 fclose(fp); // 关闭文件 printf("文件操作成功\n"); } else { printf("文件打开失败\n"); } return 0; }
评论 (0)