- 定义方法不同
char str[10];
char *ptr;
- 赋值方法和含义不同
char str[10];
str="China";/*错误*/
strcpy(str,"China");/*正确*/
char *ptr;
ptr="China";
- 字符指针是变量,而数组名是地址变量
- 在定义一个数组时,在编译时即分配单元,有确定地址,而定义一个字符指针变量时,如未对它赋初值,则其所指数据是不定的,因而使用是危险的。
例如:输入字符串时:
char str[10];
scanf("%s",str);/*正确*/
char *a;
scanf("%s",a);/*错误*/
应为:
char *a;
char str[10];
a=str;
scanf("%s",a);/*正确*/