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

指针指向常量_常量指针的四种const关键字指针常量和常量指针都离不开const关键字,我们先来了解一下什么是const关键字,const被用来定义常量,如果将一个变量加上const关键字,则被修饰的变量的值将无法改变。这个变量的值只能被访问,无法被修改。const关键字可以修饰变量或者指针。下面是const修饰变量的用法:constinta=6;或者intconsta=6;此时变量a…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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账号...

(0)


相关推荐

  • leapFTP上传网页到服务器,leapftp登录ftp服务器

    leapFTP上传网页到服务器,leapftp登录ftp服务器leapftp登录ftp服务器内容精选换一换本节为您介绍如何在本机使用远程登录工具MSTSC登录Windows弹性云服务器。弹性云服务器状态为“运行中”。如果弹性云服务器采用密钥方式鉴权,已获取Windows弹性云服务器的密码,获取方式请参见获取Windows弹性云服务器的密码。弹性云服务器已经绑定弹性公网IP,绑定方式请参见绑定弹性公网IP。使用MSTSC方式通过内网登录云服务器华为云帮助中心…

    2022年10月24日
  • 应用程序启动速度的优化

    应用程序启动速度的优化

  • 网络RTK无人机上机测试[通俗易懂]

    视频地址:https://v.qq.com/x/page/c0810tui04m.html这个视频描述的是网络RTK的特点与应用。4G网络RTK和电台RTK不同,电台RTK的纠偏数据发送基于一个单独的数传电台,也是市面上大部分的集成RTK的方案。用诺瓦泰,天宝或者司南,北斗星通的RTK板卡,外加数传电台和移动端来构成RTK系统。4G网络RTK是用4G网络来传输纠偏数据,达到厘米级定…

  • python打包的exe闪退(打包安装程序闪退)

    Python打包exe近期自己做了一个小demo要分享给朋友,但是朋友又没有python环境,所以打包成exe。下面就记录一下自己打包exe方法工具Python3.6.2Pyinstaller3.3.1安装Pyinstaller直接pip安装,没什么好说的pipinstallPyinstaller命令详解在这里我讲述我的打包方法,详细方法可见百度经验。…

  • CAP原理和数据高可用性

    CAP原理和数据高可用性对网站而言,数据是最宝贵的资源,硬件可以购买,软件可以重构,但是数据(用户数据,交易数据,商品数据)一旦丢失,对网站的打击可以说是毁灭性的。数据高可用性数据高可用性包括如下几个方面的含义数据持久性保证数据可以持久存储,在各种情况下都不会出现数据丢失。为了实现数据持久性,不但在写入数据是需要写入持久性存储,还需要将数据备份到一个或多个副本,存放在不同的物理存储设备上,在某个存储故障发生是,数据不会丢失

  • ANT1.7下载以及配置方法「建议收藏」

    ANT1.7下载以及配置方法「建议收藏」 http://www.apache.org/dist/ant/binaries/ 下的apache-ant-1.7.1-bin.zip   ;解压之后放在你的目录下,我一般放在C盘。ant的配法: 1。解压ant的包到本地目录。 2。在环境变量中设置ANT_HOME,值为你的安装目录。 3。在环境变量中设置JAVA_HOME,值为你的jdk安装目录。 4。把ANT_HOME/bin加到你系统

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号