1、
#include <stdio.h> int main(void) { char s[][5] = {"LISP","C","Ada"}; char *p[] = {"PAUL","X","MAC"}; int i; for(i = 0; i < 3; i++) { printf("s[%d] = %s ", i, s[i]); } puts(" ====================="); for(i = 0; i < 3; i++) { printf("p[%d] = %s ", i, p[i]); } return 0; }
(1)、利用数组实现的字符串的数组 和 利用指针实现的字符串的数组。
利用数组实现的字符串的数组的各构成元素会被初始化为:字符串字面中的字符和null字符
利用指针实现的字符串的数组的各构成元素会被初始化为:指向字符串字面量首个字符的指针。
2、
#include <stdio.h> int main(void) { char a[][5] = {"LISP", "C", "Ada"}; char *p[] = {"PAUL", "X", "MAC"}; int i; for(i = 0; i < sizeof(a)/sizeof(a[0]); i++) { printf("a[%d] = %s ", i, a[i]); } puts(" ===================="); for(i = 0; i < sizeof(p)/sizeof(p[0]); i++) { printf("p[%d] = %s ", i, p[i]); } return 0; }