首页 > 代码库 > 常量指针与指针常量
常量指针与指针常量
#include<iostream> using namespace std; int main() { int a=5,b=10,d=20; int * const c=&a; *c=a; cout<<c<<"-------"<<*c<<endl; *c=b; cout<<c<<"-------"<<*c<<endl; return 0; }
输出:(在Ubuntu下还不会截屏没截图啦)
自己试一下吧 ,可以看到输出了同一个地址,还有5,10;
切记最重要的一点 cosnt 修饰的是它前面的东西 也就是 int * ,而int* 是一个指针 所以理解为 指针被修饰为常量 (所以程序输出地址不变,但是它内存中的值是可以变的)
在定义的时候要先赋值,不然就出错啦,
c=&b; 是不可以的,因为c是个常量嘛!!!
#include<iostream> using namespace std; int main() { int a=5,b=10,d=20; int const * c=&a; c=&d; cout<<c<<"-------"<<*c<<endl; c=&b; cout<<c<<"-------"<<*c<<endl; return 0; }
const 修饰它前面的东西 这个程序也就容易理解了
输出结果为: 不同地址,不同值
因为它不是个常量的指针 所以c的地址可以随意更改;
但是 不能 *c=50; 因为不能更改c内存中的值;
虽然现在我知道 常量指针和指针常量 文字意思,但是过几天又忘记啦,反正知道怎么用才是最重要的
切记最重要的一点 cosnt 修饰的是它前面的东西 这是我在C++ templates 看到的
还有 cosnt int a =10;
int const a =10;
是一样的 C++ templates 书中也建议 用下面这种;
还有 int const * cosnt c =&a ;被俩次修饰 ,不能做任何修改;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。