基础知识
- 具有相同的数据类型
- 保留原始数据
- 数组元素的个数必须是常量【包括符号常量】
数组的内存空间
数组访问越界
微软编译器设计,不同变量之间有八个自己的保护空间【Linux和 Mac均无】
如何打印数组元素
code
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void print(int a[], int len);
void print(int a[], int len) {
for (int i = 0; i < len; i++) {
printf("a[%d] = %d\n", i, a[i]);
}
}
int main() {
/* 定义数组的瞬间,数组占用的空间大小就确定下来了 */
int j = 10;
int a[5] = { 1,3,5,7,9 };
//int a[] = { 1,3,5,7,9 };
printf("j = %d.\n", j);
print(a, 5);
return 0;
}
字符数组
字符串数组设定长度时,一定要比实际长度大一,为\0结束符留足位置,否则会引起乱码,因为打印的时候,会一直打印到下一个 \0, 如果比实际大一,那么\n就直接放置在最后一个字符后面;
code
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
char c[5] = { 'h', 'e', 'l', 'l', 'o' };
char d[4] = "how";
printf("%s --- %s\n", c, d); /* printf()中的 %s 表示打印字符串,其后对应的是数组名*/
return 0;
}
scanf与 字符串数组的结合
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
char c[6] = { 'h', 'e', 'l', 'l', 'o' };
char d[4] = "how";
char e[20];
scanf("%s", e);
printf("%s\n", e);
printf("%s --- %s\n", c, d); /* printf()中的 %s 表示打印字符串,其后对应的是数组名*/
return 0;
}