#include #include #include // memset int main() { char(*names)[32] = (char(*)[32])calloc(3, 32 * sizeof(char)); // 说明: 4 * 32 = 128 for (int i = 0; i < 3; i++) { printf("第 %d 个人的名字: ", i + 1); // names + i -> char(*)[32] 二维数组的首地址 // *(names + i) -> char[32] 一维数组的首地址 (*降维) scanf("%s", *(names + i)); // *(names + i) == names[i] } for (int i = 0; i < 3; i++) printf("%s\n", *(names + i)); // *(names + i) == names[i] free(names); return 0; }