#include <stdio.h> int *p = (int[]){8, 7}; // creates an unnamed static array of type int[2] // initializes the array to the values {2, 4} // creates pointer p to point at the first element of the array void main(void) { int n = 99, *p = &n; // 此时 *p == 99; printf("n: %d\n", *p); p = (int [2]){*p}; // creates an unnamed automatic array of type int[2] // initializes the first element to the value formerly held in *p // initializes the second element to zero // stores the address of the first element in p // 此时 数组为 [99, 0] p指向数组中的首元素(99) // 数组指针访问数组元素,只要在 地址不断加1 即向下移动一个单元 for (int i = 0; i < 2; i++) { printf("array %d %d\n", i, *(p + i)); } }