御笔剑客 发表于 2018-1-1 14:26:41

这段代码为什么报错?

#include <iostream>
using namespace std;
int main()
{
    const int **pp2;
    int *p1;
    const int n=13;
    pp2=&p1;
    *pp2=&n;
    *p1=10;
    cout<<*p1<<endl;

    return 0;
}


error: invalid conversion from 'int**' to 'const int**' [-fpermissive]|

Charles未晞 发表于 2018-1-1 14:39:50

#include <iostream>
using namespace std;
int main()
{
    const int **pp2;
    int *p1;
    const int n=13;
    *pp2=p1;
    *pp2=&n;
    *p1=10;
    cout<<*p1<<endl;

    return 0;
}

御笔剑客 发表于 2018-1-1 16:36:20

Charles未晞 发表于 2018-1-1 14:39


*pp2=p1;*pp2=&n;这样不就覆盖了吗?

BngThea 发表于 2018-1-1 16:46:18

第8行,你将一个非const变量赋值给了一个const

OllyDbg123 发表于 2018-1-1 17:09:06

const int **pp2是常量指针,指向的对象是常量
但int *p1和&p1是变量
页: [1]
查看完整版本: 这段代码为什么报错?