保护措施
来源:互联网 发布:知乎都是医学生恋爱 编辑:程序博客网 时间:2024/06/16 03:35
为了解决指针可能误修改或破坏内存中的数据,可以对内存中的数据加上写保护。即具有这种属性的指针只能够读出内存中的数据,却不能修改内存中的数据。把具有这种属性的指针称为指向常量的指针,简称常量指针。
给内存中的数据加写保护的方法是在声明指针时,在指针类型(即各种数据类型)前加上const,表示这些数据是常量,只能读不能写。比如:const int* iptr=&a ;,这时候就只能够通过指针iptr读出内存里的数据,但是不能对其写入或是修改。
当然,这样的保护措施只是防止通过间接引用iptr修改内存中的数据,并不保护iptr本身和iptr所指向的变量。
指针常量和常量指针不同,指针常量是指所指向的位置不能改变,即指针本身是一个常量。但是指针常量可以通过间接引用修改内存中的数据。比如:int* const iptr=&a;
常量指针常量,既不能间接引用修改数据,也不能指向别的变量或常量。比如:const int* const iptr=&a;
int a=42;
const int b=84;
const int* captr=&a; //常量指针
int* const acptr=&a; //指针常量
int* bptr=&b; //错误,不能把常量的地址给指针变量
const int *cbprt=&b; //正确,把常量的地址给常量指针是允许的
*captr=68; //错误,间接引用常量指针不可修改内存中的数据
*acptr=68; //正确,间接引用指针常量可以修改内存中的数据
captr=&b; //正确,常量指针可以指向其他变量
acptr=&b; //错误,指针常量不能指向别的变量
const int * const ccaptr=&a;// 常量指针常量
*ccaptr=68; //错误,常量指针常量不能间接引用修改数据
ccaptr=&b; //错误,常量指针常量不能指向别的常量或变量
- 保护措施
- 一些页面保护措施
- 软件保护措施的研究
- 头文件中的保护措施
- x86 & x64 的保护措施
- 页级的保护措施
- 所实施的保护措施
- 现代dump技术及保护措施
- Linux网络安全策略和保护措施
- controller是否有线程保护措施
- 现代dump技术及保护措施[Ms-Rem]
- 现代dump技术及保护措施(上)
- 现代dump技术及保护措施(下)
- 基于Linux的网络安全策略和保护措施
- 十个常用网络密码的安全保护措施
- 是儿童乘车出行最好的保护措施。
- 【Android安全】Android软件保护措施总结
- 关于数组越界的一些保护措施
- prevision-recall 曲线
- Java IO流和文件
- C# yield
- 十一
- $GLOBALS["HTTP_RAW_POST_DATA"]
- 保护措施
- strcpy函数原型
- Google Java Style 中文版
- hdu Knight Moves
- mysql 权限
- Invalid layout param in a LinearLayout: layout_toLeftOf
- RTTI与反射区别
- Android浏览器(PAD版)开发问题总结
- BMP图像的结构及读写和灰度化