C-指针与数组

指针与数组

数组名是一个指向数组中第一个元素的常量指针.

数字数组

将一个指针指向一个数字数组, 指针中存储了数组中第一个元素的地址.

int arr1[] = {1, 2, 3};
int* p = arr1;
printf("%d", *p);     // 1 "指针表示法"
printf("%d", p[0]);   // 1 "数组表示法"
printf("%d", *(p+1);  // 2

字符数组

将一个指针指向一个字符数组, 指针中存储了数组中第一个元素的地址.

char str1[] = "Hello";
char* p = str1;
printf("%c", *p);    // 'H'
printf("%c", p[0]);  // 'H'
putchar(*(p+1));     // 'e'
printf("%s", p);     // "Hello"

字符数组与数字数组的区别就在于:

  1. 数字数组不需要结束符, 字符数组会自动添加结束符;
  2. 使用printf()函数可以输出一个字符串, 而不能输出一个数字数组.

二维数组

int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
int* p = arr[0];  // p需要指向第一个元素, 因此是arr[0]
// p = arr[1];
printf("%d = %d", *p, arr[0][0]);
posted @ 2023-04-07 18:34  Khru  阅读(6)  评论(0编辑  收藏  举报