不正确的是:A.char a[10]="china"; B.char a[10],*p=a;p="china" ..以及辨析char *a;*a="china";是否等价于char*a="china"

下面说明不正确的是()。

A.char a[10]="china";
B.char a[10],*p=a;p="china"
C.char *a;a="china";
D.char a[10],*p;p=a="china"
解析:因为字符数组a是作为字符串常量存在的,只能在定义时赋值,不能像这样在后面对数组进行赋值操作。
C语言中操作一个字符串常量的方法有:① 把字符串常量存放在一个字符数组中,如A;② 用字符指针指向字符串。
C语言中操作一个字符串常量的方法有:(1)把字符串常量存放在一个字符数组中,如A选项。(2)用字符指针指向字符串
附加:
辨析char *a;*a="china";是否等价于char *a="china";
此处当然是不相等的,
char *a=”china”表示一个char类型指针a
在定义的时候同时赋值,这其实等价于  char *a; a=china;
-----------------------------------------------------
char *a
 //定义一个指针变量a(定义好的指针变量是a,而不是*a)
所以,*a=”china”是不对的
*符号,在定义的语句中,表示声明了一个指针的类型;
*符号,在赋值语句中,表示一个运算,取这个变量的指向内容

你可能感兴趣的:(C语言,指针的概念理解)