字符串指针疑点
字符串指针疑问本帖最后由 boyhailong 于 2014-01-15 00:22:46 编辑大家看下面代码#include iostreamint
字符串指针疑问
本帖最后由 boyhailong 于 2014-01-15 00:22:46 编辑 大家看下面代码
#include <iostream>
int main(){
char* p1 = "ab";
char* p2 = "ab";
}
为什么p1,p2指向为什么是相同的?怎么解释呢?
[解决办法]因为字符串“abc”是一个放在一个常量地址处。指向该字符串,就是指向该常量地址。
[解决办法]编译器有优化,相同常量字符串用只存一次。
[解决办法]"ab"会保存在常量区, 一般的编译器都会优化, 相同的常量只保存一份.
[解决办法]相同的字符串常量只会有一个副本,所以p1和p2都指向了相同的地方,你可以改用下面的试试:
char p1[] = "ab";
char p2[] = "ab";