const指针与const引用性质一样。不能把非const指针(引用)赋值给const指针(引用)类型的数据。
返回指针:
#include<iostream>
const int* getconstintp(const int *a)//对返回类型有要求,要求返回类型也是const int *a型
{
return a;
}
int main()
{
const int a=100;
int b=100000000;
int p=1000;
const int *x=getconstintp(&p);
//*x=1;//报错 *x是常量。
x=&b;//const int *x中,*x是常量,而x不是,所以可以改变x(指针)的值。
std::cout<<*x<<std::endl;
getchar();
return 0;
}
结果:
返回引用:
#include<iostream>
const int& getconstintr(const int &a)//返回a,a是const引用,则要求返回的引用类型也是const int &型的。
{
return a;
}
int main()
{
const int a=10;
int x=getconstintr(a);
std::cout<<x<<std::endl;
getchar();
return 0;
}
结果:
返回值:
#include<iostream>
int getconstintr(const int &a)//按值返回,对接收的变量是否const无要求
return a;
}
int main()
{
int a=10;
int x=getconstintr(a);
std::cout<<x<<std::endl;
getchar();
return 0;
}
结果:
相关博客:
const 用法总结(关于const修饰参数、函数返回值部分)