C语言核心基础笔记解析

拆解C语言变量、常量、数组等核心知识点

C语言核心基础笔记解析

本文对C语言变量、常量、输入输出、数组、字符串及指针的核心知识点进行拆解,内容简洁且突出重点。

一、变量名命名规则

  • 合法字符:字母、数字、下划线
  • 首字符要求:必须为字母或下划线
  • 注意:区分大小写,不可与关键字重名

二、符号常量(宏定义)

  • 语法:#define 宏名 常量值(如#define PI 3+2
  • 特性:预处理阶段文本替换,无类型检查
  • 避坑:表达式宏需加括号(如#define PI (3+2)

三、进制输出格式符

  • %d - 十进制整数输出
  • %o - 八进制整数输出
  • %x - 十六进制整数输出

四、浮点型常量(科学计数法)

  • 格式:数字e/E整数(如1e3=10³189e-6=0.000189
  • 规则:e前必须有数字,后必须是整数
  • 默认类型:double,加ffloat(如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字节)

七、输入输出与缓冲区

  1. 缓冲区清理:fflush(stdin)(部分编译器不支持,可用while(getchar()!='\n');替代)
  2. %d%c坑:scanf%c会读取缓冲区换行符,需加空格(scanf(" %c",scanf(“ %c”, &ch)`)

八、sizeof运算符

  • 性质:编译期运算符,非函数
  • 用途:计算数据类型/变量/数组的字节数
  • 示例:sizeof(int)=4(32位系统)、sizeof(arr)求数组总字节数

九、数组的定义与使用

  • 初始化:int a[10]={0}; 全部元素置0
  • 越界访问:a[10]=11int a[10])会导致内存错误
  • 函数传参:传首元素地址,无法传递数组长度

十、字符串处理函数(需<string.h>

  • strlen(s) - 求字符串有效长度(不含'\0'
  • strcat(a,b) - 拼接b到a末尾
  • strcpy(a,b) - 把b复制到a
  • strcmp(a,b) - 比较字符串,相等返回0

十一、指针与内存管理

  1. 地址操作:&取地址,*解引用
  2. 动态内存
    • 分配:char *p=(char*)malloc(4);(需<stdlib.h>
    • 释放:free(p);(堆区内存手动释放,栈区自动释放)
  3. 函数返回指针:不可返回局部变量指针(会成野指针)