204 字
1 分钟
【C】数组与字符串
2026-05-19

一维数组#

类型 数组名[元素个数];
  • 元素个数 须为大于 0 的整型常量表达式(C99 前);VLA 见 12-void与特殊数组类型
  • 下标从 0 开始,有效范围 0 ~ 长度-1

初始化#

int a[3];
a[0] = 1; a[1] = 2; a[2] = 3; // 逐个赋值
int b[3] = {0, 1, 2}; // 完全初始化
int c[5] = {0, 1, 2}; // 其余元素为 0
int d[] = {0, 1, 2, 3}; // 长度由初值个数推断

未初始化元素的自动数组元素值不确定;静态/全局数组未初始化部分为 0。

字符与字符串#

字符数组#

char chs[] = {'a', 'b', 'c'}; // 无自动 '\0'

字符串字面量#

char str[] = "abc"; // 等价于 {'a','b','c','\0'}
char *p = "abc"; // p 指向只读字符串,勿修改 *p
  • C 中字符串是以 '\0'(NUL)结尾的 char 序列
  • "abc" 长度为 4 字节(含结尾符)
  • 不要char c = "abc";(类型错误)

常用字符串函数#

头文件 #include <string.h>strlenstrcpystrncpystrcmpstrcat 等。使用 strcpy 等须保证目标缓冲区足够大。

数组与 sizeof#

int a[10];
sizeof(a); // 整个数组字节数,如 40
sizeof(a[0]); // 单个元素

表达式中的数组名在多数情况下退化为指向首元素的指针,但 sizeof(数组名) 仍是整个数组大小。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

【C】数组与字符串
https://lysj.work/posts/studynotes/c/c数组与字符串/
作者
Sekiro
发布于
2026-05-19
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录