打印

const问题

[复制链接]
893|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

使用特权

评论回复
5
vivilzb1985| | 2013-11-25 20:10 | 只看该作者
秋天落叶 发表于 2013-10-31 17:06
const在*的左侧,const是用来修饰指针所指向的变量  那么指针指向为常量
const在*的右侧,const是修饰指针 ...

参考的了,这个介绍额很不错的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

229

主题

2603

帖子

1

粉丝