为什么Cstring的变量可以直接赋值

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:04:01
我记得C里面不是字符型的必须要用strcpy来初始化字符串吗?为什么CString类型可以直接赋值,如CString str;str = "红色";

因为微软重新定义了也就是重载了 = 运算符, 你也可以这么理解,当你掉str = "红色";时,他知道 你想给赋值,所以帮你把值赋了。。

因为一个字符串,一个是字符型数组
对于字符串的操作可以直接赋值,而数组就只能用strcpy来赋值或一个一个的往里写,还有一种字符串的类型:
ANSIString str;
str="答案";

上面俩个仁兄的回答都是有道理的,c里边字符串是数组表示的,对数组的操作就如第一位仁兄所说的可以对单个数组元素操作,也可以整体用函数操作,也就是你说的strcpy!还有一种就是对数组的地址操作,如:char a[2]={'a','b'};要输出这个数组的内容可以对地址*a操作!在vc中,对字符串的操作是微软提供了类cstring,通过这个类对象操作字符串。‘=’是这个类的一个操作符,当然就可以用这个方法操作了!你可以查看一下msdn~

跟char*不一样,是mfc封装的类