首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串指针疑点

2014-01-17 
字符串指针疑问本帖最后由 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";


引用:
大家看下面代码
#include <iostream>
int main(){
char* p1 = "ab";
char* p2 = "ab";


为什么p1,p2指向为什么是相同的?怎么解释呢?

热点排行