const问题

[复制链接]
1298|4
 楼主| xsgy123 发表于 2013-10-31 16:46 | 显示全部楼层 |阅读模式
代码如下:
void Test1(const char * pBuf, int Len)
{
char * p = new char[4];
*(short *)(pBuf+2) = 99;//??
pBuf[2] = 'c';//err
pBuf = p;
return ;
}

void Test2(char * const pBuf, int Len)
{
char * p = new char[4];
*(short *)(pBuf+2) = 44;//??
pBuf[2] = 'b';
pBuf = p;//err
return ;
}

为什么        *(short *)(pBuf+2) = 44; 这种写法却可以改变 传入参数的内容
秋天落叶 发表于 2013-10-31 17:06 | 显示全部楼层
const在*的左侧,const是用来修饰指针所指向的变量  那么指针指向为常量
const在*的右侧,const是修饰指针本身  那么指针本身是常量
yybj 发表于 2013-10-31 17:19 | 显示全部楼层
const 地址就是地址不变
const 值,值就不变
comeon201208 发表于 2013-11-10 20:47 | 显示全部楼层
秋天落叶 发表于 2013-10-31 17:06
const在*的左侧,const是用来修饰指针所指向的变量  那么指针指向为常量
const在*的右侧,const是修饰指针 ...

了解哈,很不错额解释的,我还没怎主意这样的问题的啊:L
vivilzb1985 发表于 2013-11-25 20:10 | 显示全部楼层
秋天落叶 发表于 2013-10-31 17:06
const在*的左侧,const是用来修饰指针所指向的变量  那么指针指向为常量
const在*的右侧,const是修饰指针 ...

参考的了,这个介绍额很不错的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

229

主题

2603

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部