指针指向常量_常量指针的四种

指针指向常量_常量指针的四种

const关键字指针常量和常量指针都离不开const关键字,我们先来了解一下什么是const关键字,const被用来定义常量,如果将一个变量加上const关键字,则被修饰的变量的值将无法改变。这个变量的值只能被访问,无法被修改。const关键字可以修饰变量或者指针。

下面是const修饰变量的用法:

const int a = 6;

或者 int const a = 6;

此时变量a的值无法改变,只能访问,不能改写

指针常量 指针本身是一个常量,不能更改指针指向的地址,只能更改指针指向地址的值

代码语言:javascript代码运行次数:0运行复制#include

using namespace std;

int main() {

int a = 100, b = 200;

int* const p = &a;

*p = 200;

// p = &b; 错

// p指针指向的地址不能更改为b的地址,否则是不对的

cout << "指针p指向的值为:" << *p << endl;

cout << "a的值为:" << a << endl;

cout << "b的值为:" << b << endl;

return 0;

}代码语言:javascript代码运行次数:0运行复制// 输出结果

指针p指向的值为:200

a的值为:200

b的值为:200常量指针常量指针指的是一个常量,所以指针指向的值是不能改变的,但是指针指向的地址是可以改变的

代码语言:javascript代码运行次数:0运行复制#include

using namespace std;

int main() {

int a = 100, b = 200;

const int* p = &a; // 也可以写成 int const * p = &a; 二者只是格式上的差别,都可以使用

p = &b;

// *p = 200; 错

// 这时不能改变指向地址的值,只能更改指向的地址

cout << "指针p指向的值为:" << *p << endl;

cout << "a的值为:" << a << endl;

cout << "b的值为:" << b << endl;

return 0;

}代码语言:javascript代码运行次数:0运行复制// 输出结果

指针p指向的值为:200

a的值为:100

b的值为:200区别注意指针常量和常量指针的区别,指针常量只能改变值,不能改变地址,常量指针只能改变地址,不能改变值。

如果要想值和地址都不改变可以同时在前后都加上const关键字

例:

int a = 100,b = 200;

const int * const p = &a;

// 此时指针p指向a的地址,指针指向不能指向别的值,指针的值也无法改变

// p = &b; 错

// *p = 200; 错

如有错误,欢迎指正!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179663.html原文链接:https://javaforall.cn

Copyright © 2088 世界杯欧洲预选赛_南非世界杯主题曲舞蹈 - lyzkxt.com All Rights Reserved.
友情链接