A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.常量指针

声明方法:

const int *p = &i;
int const *p = &i;//两种方法等价。

作用:不可更改指向地址的内容,但可修改指向地址。

    int i = 1;
    int j = 2;
    const int *p = &i;
    //int const *p = &i;
    *p = 3;  //错误,常量指针不可以修改指向地址的内容
    p = &j;  //正确,常量指针可以修改指向地址

2.指针常量

声明方法:

    int* const p = &i;

作用:可更改指向地址的内容,但不可修改指向地址。

    int i = 1;
    int j = 2;
    int* const p = &i;
    *p = 3;  //正确,指针常量可以修改指向地址的内容。
    p = &j;  //错误,指针常量不可以修改指向地址。


3.两者的组合

声明方法:

const int* const p = &i;
1
作用:不可更改指向地址的内容,也不可修改指向地址。

    int i = 1;
    int j =2;
    const int* const p = &i;  
    *p =3;  //错误
    p = &j;  //错误

4.常量与指针

只有常量指针可以指向常量,而普通指针、指针常量不行。常量指针不可以修改常量的值。

    const int i = 1;  
    const int* pt = &i;  //正确,常量指针可以指向常量
    int* pi = &i;  //错误,普通指针不可以指向常量。
    int* const pr = &i;  //错误,指针常量不可以指向常量。

8 个回复

倒序浏览
回复 使用道具 举报
棒棒哒
回复 使用道具 举报
牛牛牛!
回复 使用道具 举报
奈斯,优秀
回复 使用道具 举报
回复 使用道具 举报
优秀,奈斯
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马