读书人

陈词滥调的const char * 究竟限制了

发布时间: 2013-11-01 14:43:02 作者: rapoo

老生常谈的const char * ,究竟限制了什么不能被改变
代码如下:
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; 这种写法却可以改变 传入参数的内容、
[解决办法]


表示可读而已!内容不可改!
但是实际可以间接修改!

读书人网 >C++

热点推荐