不能将一个数组赋值给另一个数组,但可以将一个string对象赋给另一个string对象
例如:
char charr1[20]; //create an empty array
char charr2[20] = "jaguar";//create an initialized array
string str1; //create an empty string object
string str2 = "panther" //ctrate an initialized string
charr1 = charr2; //INVALID, no array assignment
str1 = str2; //VALID, object assigment ok
//摘自C++ Primer Plus
charr1 = charr2;这句代码是无效的,一开始我以为charr1与charr2都是char* 类型的指针,为什么不能赋值呢?
后来百度得到一句话:“数组名是数组第一个元素的地址,代表指针型常量”。注意指针常量和常量指针的区别,*和const谁先在前就读谁。
charr1与charr2类型为char* const。
搜索了百度百科得到:指针常量的值是指针,这个值因为是常量,所以不能被赋值。
*(指针)const(常量),谁先在前先读谁,*象征着地址,const象征着内容,谁在前面,谁就不允许改变