| 
 | 
 
 
发表于 2015-6-15 12:50:54
|
显示全部楼层
 
 
 
 本帖最后由 ryxcaixia 于 2015-6-15 13:08 编辑  
 
妥妥的不行 
a和b都是指针类型, 对于指针类型赋值操作符(=)的意义是改变指针的指向 
即当进行b=a这个操作时, 相当于把指针b指向了a的地址, 即两者的输出都是"i love you baby!",编译器并不会只能的仅仅用一个=操作符便进行了字符串拷贝功能. 
 
赋值一定要循环赋值, 利用每一个字符进行拷贝 
并且, 还有一个最重要的一点 
char* a = "i love you baby!"; 
和 char a[] = "i love you baby!"; 
是两个概念, 前者无法被赋值, 因为他的字符串类型是const char* 即在内存中存在于符号表中为常量, 无法修改 
第二个a可以被赋值, 因为它是一个字符数组(变量), 在内存位于栈上, 可以对里面的区域进行写入操作 
 
楼主 对于字符串操作, 可以先记住这两句话 
1. 如果是指针类型, =仅仅改变指向并不修改字符串的内容 
2. 想要对字符串进行复制操作要利用strcpy等函数 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |