关键字const在指针中的运用
2015-12-13 19:58
429 查看
1、指向常量的指针:用const约束指针所指访问对象。
形式:const 类型 指针 或 类型 const 指针
如:const int *p
指向常量的指针变量可以获取变量或常量的地址,但限制用指针间址访问对象方式为“只读”。而且常量的地址只能赋给指向常量的指针。
如:
2、指针常量:指针变量的值只能在定义的时候初始化,定义后不能修改,即不能改变指针变量的指向。但可以修改指针所指对象。
形式: 类型 *const 指针
如:
运行结果
![](http://img.blog.csdn.net/20151213194448314)
3、指向常量的指针常量:指针本身和所指对象的值在定义之后都限制为只读,不能修改。
形式: const 类型 *const 指针 或 类型 const *const 指针
如
形式:const 类型 指针 或 类型 const 指针
如:const int *p
指向常量的指针变量可以获取变量或常量的地址,但限制用指针间址访问对象方式为“只读”。而且常量的地址只能赋给指向常量的指针。
如:
[code]#include <iostream> using namespace std; int main() { int i=2; const int m=5; // int *p; const int *p1; const int *p2; p1=&i; p2=&m; /* *p1=10; //错误,不能修改指向常量指针的对象 *p2=12; //同上 p=&m; //错误,常量地址不能赋给普通指针 */ i=*p1+*p2; cout<<i<<endl; system("pause"); }
2、指针常量:指针变量的值只能在定义的时候初始化,定义后不能修改,即不能改变指针变量的指向。但可以修改指针所指对象。
形式: 类型 *const 指针
如:
[code]#include <iostream> using namespace std; int main() { int i=2,m=5; const int x=10; int *const p=&i; const int *p1=&x; const int *const p2=&x; //int *const p2=&x;错误,常量的地址只能赋给指向常量的指针,不能用一个无约束间指访问的指针获取它的地址 //p=&m;错误,不能修改指针常量 *p=m; cout<<*p<<'\t'<<*p1<<'\t'<<*p2<<endl; system("pause"); }
运行结果
3、指向常量的指针常量:指针本身和所指对象的值在定义之后都限制为只读,不能修改。
形式: const 类型 *const 指针 或 类型 const *const 指针
如
[code]#include <iostream> using namespace std; int main() { int i=2,m=5; const int x=10; const int *const p2=&x; //p2=&i;错,不能写指针常量 //*p2=30;错,不能写指向常量的指针常量 cout<<*p2<<endl; system("pause"); }
相关文章推荐
- Unity3D -- 打包Android多个AndroidManifest
- syntax error: unexpected :=解决方案
- 编译Chromium Android版本
- 编译Chromium Android版本
- 机器学习: 逻辑回归(Logistic Regression)
- bzoj2142 礼物 组合数学&中国剩余定理
- 树的三种遍历方式(递归)
- 上市ASCII 表省内发现!
- 整数划分问题
- Breaseman算法绘制直线算法公式推导|步骤|程序
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
- 简单逆向分析使用案例(5)--CrackMe_04.exe 获取用户名和密码
- Unity3D -- DontDestroyOnLoad重复实例化的问题
- openSUSE下配置Eclipse的JRE
- 使用Eclipse编译运行MapReduce程序 Hadoop2.7.1/Ubuntu
- Supervisord守护Python进程
- 机器学习: 朴素贝叶斯(Naive Bayes)
- 数据库SQL语言最常用的数字函数
- java之动态分配和静态分配
- Servlet之Request&Response的编码问题