常量指针不能作为右值赋值给非常量指针

Posted drunknbeard

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常量指针不能作为右值赋值给非常量指针相关的知识,希望对你有一定的参考价值。

#include<iostream>
using namespace std;
int main(){
    int b[4]={1,2,3,4};
    const int* a = b;
    int * c = a;//error: invalid conversion from ‘const int*‘ to ‘int*‘ 
        return 0;
}

原因很简单,因为常量指针是指向常量的指针,const是一个限定符,你给自己加上这个限定,不代表你可以给别人加上这个限定,因此,如果别人不是指向const的指针,你就不能强迫别人也指向const。

以上是关于常量指针不能作为右值赋值给非常量指针的主要内容,如果未能解决你的问题,请参考以下文章

c语言常量指针赋值给变量指针导致警告

void指针意义Constvolatile#definetypedef接续符

顶层const和底层const

什么是左值和右值

10深入理解C指针之---指针和常量

左值右值