C语言核心基础笔记解析
本文对C语言变量、常量、输入输出、数组、字符串及指针的核心知识点进行拆解,内容简洁且突出重点。
一、变量名命名规则
- 合法字符:字母、数字、下划线
- 首字符要求:必须为字母或下划线
- 注意:区分大小写,不可与关键字重名
二、符号常量(宏定义)
- 语法:
#define 宏名 常量值(如#define PI 3+2) - 特性:预处理阶段文本替换,无类型检查
- 避坑:表达式宏需加括号(如
#define PI (3+2))
三、进制输出格式符
%d- 十进制整数输出%o- 八进制整数输出%x- 十六进制整数输出
四、浮点型常量(科学计数法)
- 格式:
数字e/E整数(如1e3=10³、189e-6=0.000189) - 规则:
e前必须有数字,后必须是整数 - 默认类型:
double,加f为float(如3.14f) - 浮点数对齐:
%5.2f右对齐,%-5.2f左对齐
五、字符型常量
- 表示:单引号包裹单个字符(如
'a'、'A') - ASCII码关键值:
'0'=48、'A'=65、'a'=97 - 转换:大写转小写加32(
'A'+32='a')
六、字符串常量
- 表示:双引号包裹(如
"abc") - 存储:末尾自动加
'\0'作为结束标志("abc"占4字节) - 区别:
"a"是字符串(2字节),'a'是字符(1字节)
七、输入输出与缓冲区
- 缓冲区清理:
fflush(stdin)(部分编译器不支持,可用while(getchar()!='\n');替代) %d与%c坑:scanf后%c会读取缓冲区换行符,需加空格(scanf(" %c",scanf(“ %c”, &ch)`)
八、sizeof运算符
- 性质:编译期运算符,非函数
- 用途:计算数据类型/变量/数组的字节数
- 示例:
sizeof(int)=4(32位系统)、sizeof(arr)求数组总字节数
九、数组的定义与使用
- 初始化:
int a[10]={0};全部元素置0 - 越界访问:
a[10]=11(int a[10])会导致内存错误 - 函数传参:传首元素地址,无法传递数组长度
十、字符串处理函数(需<string.h>)
strlen(s)- 求字符串有效长度(不含'\0')strcat(a,b)- 拼接b到a末尾strcpy(a,b)- 把b复制到astrcmp(a,b)- 比较字符串,相等返回0
十一、指针与内存管理
- 地址操作:
&取地址,*解引用 - 动态内存
- 分配:
char *p=(char*)malloc(4);(需<stdlib.h>) - 释放:
free(p);(堆区内存手动释放,栈区自动释放)
- 分配:
- 函数返回指针:不可返回局部变量指针(会成野指针)