
1.数组的概念相同类型数据的集合内存空间连续分配数组名在大多数情况下代表数组首元素的地址额外的情况如下所示1.1 sizeof(数组名)—— 返回整个数组的字节数1.2 数组名—— 返回整个数组的地址类型是int (*)[n]2.数组定义的格式一维数组数据类型 数组名 [元素个数];二维数组数据类型 数组名 [行数][列数];举例int a [8]; // 8 个 intint b [7][8]; // 7 行 8 列注意下标从 0 开始最大下标为 个数 - 13.字符数组3.1 字符串以 \0字符串结束符 结尾的字符数组字符串常量如 huke的值是首字符 h 的地址3.2 字符数组和字符串常量的区别字符数组存放在栈 / 全局区内容可以修改长度固定字符串常量存放在只读常量区内容不能修改修改会崩溃4.重要字符串操作函数几个重要的头文件#include string.h4.1 fgets(char *s, int size, FILE *stream)功能安全读取一行字符串示例fgets(str, sizeof(str), stdin);注意gets()不安全已被废弃容易缓冲区溢出建议用 fgets()4.2 puts(const char *s)功能输出字符串并自动换行4.3 strlen(const char *s)功能求字符串有效长度不含末尾 \04.4 strcmp(const char *s1, const char *s2)功能比较两个字符串内容返回值0相等0s1 s20s1 s24.5 strcpy(char *dest, const char *src)功能把 src 字符串复制到 dest注意dest 必须有足够空间且必须是可写的字符数组不能是字符串常量4.6 strcat(char *dest, const char *src)功能把 src 拼接到 dest 末尾注意dest 空间必须足够大4.7 memset(void *s, int c, size_t n)功能按字节批量初始化内存示例int a [500];memset (a, 0, sizeof (a)); // 全部清 0