请解释一下C语句"char a[10],p;p=a=“china”"的含义.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/23 19:36:29
请解释一下C语句"char a[10],p;p=a=“china”"的含义.
下列说明不正确的是:
(A)char a[10]=“china” (B)char a[10],p=a;p=“china” (C)char p;p=“china”(D)char a[10],p;p=a=“china”;
下列说明不正确的是:
(A)char a[10]=“china” (B)char a[10],p=a;p=“china” (C)char p;p=“china”(D)char a[10],p;p=a=“china”;
char a[10], *p;
p = a = "china";
是错的赋值!~
原因:
char *p;
p = "china";
这里的p是在静态区分配的内存,也就是说p是指向字符常量的指针.
而在p = a = "china";中,"="运算符是从右向左结合的,所以是将"china"的首地址赋值给a,而a是char型数组的首地址,这是把字符常量的地址赋值给字符变量,所以错误!~
p = a = "china";
是错的赋值!~
原因:
char *p;
p = "china";
这里的p是在静态区分配的内存,也就是说p是指向字符常量的指针.
而在p = a = "china";中,"="运算符是从右向左结合的,所以是将"china"的首地址赋值给a,而a是char型数组的首地址,这是把字符常量的地址赋值给字符变量,所以错误!~
请解释一下C语句"char a[10],p;p=a=“china”"的含义.
定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 A)p=s; B)p=k; C
若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句正确的是:A、p=s; B、p=k; C、
main() { char a[]={'a','b','c','d'}; char *p=(char *)(&a+1);
下面的选项中正确的赋值语句是(char a[5],*p=a;)( ).A p=“abcd”; B a=“abcd”; C
192.以下程序段运行后,表达式*(p+4)的值为( ).char a[]="china"; char *p; p=a;
char point(char*p) {p+=3;return *P} main() {char b[4]={'a','
char p[]={'a','b','c'},q[]="abc";
设有变量说明:char a[6],*p=a;下面表达中,正确的赋值语句是
char p[]={'a','b','c'}与q[]="abc";的区别
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcat(p
下列赋值语句,不正确的是?A.char c='a' B.char c=“a“ C.char c=97 D.int c=‘