1.#include<stdio.h> void test1(char a[10]) { printf("%s/n", a); a[0] = 'B'; printf("%s/n", a); } void test2(char *a) { printf("%s/n", a); *a = 'B'; printf("%s/n", a); } int main(void) { char arr[] = "niubi"; test1(arr); test2(arr); printf("%s/n", arr); } 正常打印出: niubi Biubi Biubi Biubi Biubi 2.#include<stdio.h> void test1(char a[10]) { printf("%s/n", a); a[0] = 'B'; //段错误段错误段错误 printf("%s/n", a); } void test2(char *a) { printf("%s/n", a); *a = 'B'; //段错误段错误段错误 printf("%s/n", a); } int main(void) { char *arr = "niubi"; printf("%s/n", arr); test1(arr); test2(arr); }