小编kyp*_*ite的帖子

指向const的指针可以指向非const对象 - 语言设计还是技术原因?



    //Example 1
    const double pie = 3.14;   //const object
    const double *cptr = &pie; //pointer-to-const to const object
    double *ptr = &pie;        //ERROR - non-pointer-to-const to const object

    //Example 2
    double pie = 3.14;         //non-const object
    const double *cptr = &pie; //non-pointer-to-const to non-const object
    double *ptr = &pie;        //non-pointer-to-const to non-const object


最初我虽然允许指向非const对象的指针,因为它只是意味着指向const的指针不会改变非const对象.

但我只是在c ++书中读到,指向const到非const对象的原因是允许的,因为指针到const指针无法真正知道它指向的对象是否为const,所以它对待对象它指向const但是通过相同的逻辑,非指针指向const会将const对象视为非const对象,但编译器将在编译时抛出错误.

我在这里错过了什么吗?

c++ pointers const

5
推荐指数
2
解决办法
2403
查看次数

"hello world"字符串文字可以分配给char*类型吗?

char* foo = "fpp"; //compile in vs 2010 with no problem
Run Code Online (Sandbox Code Playgroud)

我虽然字符串文字是const char*类型.
并且const类型不能分配给非const类型.
所以我希望上面的代码失败或者我错过了什么?

编辑:对不起伙计们,我完全忘记编译器也会发出警告.
我一直在查看错误列表.
我忘了检查一下.

Edit2:我将我的项目警告级别设置为EnableAllWarnings(/ Wall),并且没有任何关于此的警告.
所以我的问题仍然有效.

c++ string const

4
推荐指数
1
解决办法
4098
查看次数

标签 统计

c++ ×2

const ×2

pointers ×1

string ×1