为什么返回类型为const int * const的函数可以用 const int * 来接收?


比如
const int * const fun( ) {
        static int i ;
        return &i ;
}
int main (void) {
        const int * cptr = fun( ) ;
        return 0 ;
}

这个程序就没有报错。。。。。
已邀请:

sfesly

赞同来自: HeroJack batman jtfan


const int * const ptr;
第一个const 限制ptr指向的整型值不可更改, 第二个限定ptr本身作为变量不可更改。
函数返回值里面,第二个const只是限定fun()返回值不能用于左值。
可以将情形简化一下,
int const fun2(){
return 2;
}
int main(){
int m = fun2();//这里不出错谁都可以理解吧
}

要回复问题请先登录注册