您的位置:首页 > 其它

关键字const在指针中的运用

2015-12-13 19:58 429 查看
1、指向常量的指针:用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");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: