C++ 补充 & C++ 11 - C++ const

    技术2022-07-21  81

    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

    Processed: 0.009, SQL: 9