char *a[60]; char b[60]; strcpy(a,b); a是什么类型?为什么strcpy成立?

如题所述

第1个回答  2012-05-09
a是指针数组的数组名,数组元素是char类型的指针,strcpy(a,b)实际上把b为首地址的字符串拷贝到以a【即:是a[0]】为首地址的内存中。 不过在此之前要为a[0]动态开辟内存空间,否则会出现内存不可写
第2个回答  2012-05-09
//首先从a 处开始,先与[]结合,因为其优先级
//比*高,所以a 是一个数组,然后再与*结合,说明
//数组里的元素是指针类型,然后再与char 结合,
//说明指针所指向的内容的类型是字符型的,所以
//a 是一个由返回char型数据的指针所组成的数组

char cp[60];
a[0] = cp;
strcpy(a[0],b);
当使用strcpy时要确保 a[0] 有空间。

strcpy(a,b);// error : a的类型不匹配
第3个回答  2012-05-09
a是个char**, strcpy(a,b)不成立,什么编译器能通过?本回答被提问者采纳
相似回答