const_cast用法詳解
去const屬性。(僅針對於指針和引用)
demo 代碼(一)
#include <iostream>
using namespace std;
void demo(const char* p)
{
/* 對指針去掉 const char *p */
char* p1 = const_cast<char*>(p);
p1[0] = 'A';
/* 直接去掉 const 修改 */
const_cast<char*>(p)[0] = 'A';
p1[0] = 'A';
cout << p << endl;
}
void demo(const int p)
{
int q = p;
//const_cast<int>(p) = 888; /* NO! 不能對非指針和引用進行 const 轉換 */
cout << p << endl;
}
int main(void)
{
/* 字符串數組 */
char p[] = "12345678";
demo(p); /* 合情合理 */
/* 常量字符串不能去掉 const 修改 */
/* 警告: 在去掉常量限定之前, 保證指針指向的內存能夠修改, 不能修改則會引起異常 */
const char* cp = "987654321";
demo(cp);
system("pause");
return 0;
}
結語:
時間: 2020-07-02