大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
const关键字
指针常量和常量指针都离不开const关键字,我们先来了解一下什么是const关键字,const被用来定义常量,如果将一个变量加上const关键字,则被修饰的变量的值将无法改变。这个变量的值只能被访问,无法被修改。const关键字可以修饰变量或者指针。
下面是const修饰变量的用法:
const int a = 6;
或者 int const a = 6;
此时变量a的值无法改变,只能访问,不能改写
指针常量
指针本身是一个常量,不能更改指针指向的地址,只能更改指针指向地址的值
#include <iostream>
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;
}
// 输出结果
指针p指向的值为:200
a的值为:200
b的值为:200
常量指针
常量指针指的是一个常量,所以指针指向的值是不能改变的,但是指针指向的地址是可以改变的
#include <iostream>
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;
}
// 输出结果
指针p指向的值为:200
a的值为:100
b的值为:200
区别
注意指针常量和常量指针的区别,指针常量只能改变值,不能改变地址,常量指针只能改变地址,不能改变值。
如果要想值和地址都不改变可以同时在前后都加上const关键字
例:
int a = 100,b = 200;
const int * const p = &a;
// 此时指针p指向a的地址,指针指向不能指向别的值,指针的值也无法改变
// p = &b; 错
// *p = 200; 错
如有错误,欢迎指正!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179663.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...