基础知识

  1. 具有相同的数据类型
  2. 保留原始数据
  3. 数组元素的个数必须是常量【包括符号常量】

数组的内存空间

image.png

数组访问越界

微软编译器设计,不同变量之间有八个自己的保护空间【Linux和 Mac均无】

如何打印数组元素

code

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. void print(int a[], int len);
  5. void print(int a[], int len) {
  6. for (int i = 0; i < len; i++) {
  7. printf("a[%d] = %d\n", i, a[i]);
  8. }
  9. }
  10. int main() {
  11. /* 定义数组的瞬间,数组占用的空间大小就确定下来了 */
  12. int j = 10;
  13. int a[5] = { 1,3,5,7,9 };
  14. //int a[] = { 1,3,5,7,9 };
  15. printf("j = %d.\n", j);
  16. print(a, 5);
  17. return 0;
  18. }

image.png

字符数组

字符串数组设定长度时,一定要比实际长度大一,为\0结束符留足位置,否则会引起乱码,因为打印的时候,会一直打印到下一个 \0, 如果比实际大一,那么\n就直接放置在最后一个字符后面;

code

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int main() {
  5. char c[5] = { 'h', 'e', 'l', 'l', 'o' };
  6. char d[4] = "how";
  7. printf("%s --- %s\n", c, d); /* printf()中的 %s 表示打印字符串,其后对应的是数组名*/
  8. return 0;
  9. }

image.png

scanf与 字符串数组的结合

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int main() {
  5. char c[6] = { 'h', 'e', 'l', 'l', 'o' };
  6. char d[4] = "how";
  7. char e[20];
  8. scanf("%s", e);
  9. printf("%s\n", e);
  10. printf("%s --- %s\n", c, d); /* printf()中的 %s 表示打印字符串,其后对应的是数组名*/
  11. return 0;
  12. }

image.png

image.png