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

指针指向常量_常量指针的四种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;    错

如有错误,欢迎指正! 

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

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

(0)
上一篇 2022年10月20日 下午11:00
下一篇 2022年10月20日 下午11:00


相关推荐

  • Android Studio下载、安装和配置+SDK+tools下载(无敌超级详细版本)

    Android Studio下载、安装和配置+SDK+tools下载(无敌超级详细版本)下载:AndersonStudio是Google为Android提供的官方IDE工具,下载地址:http://www.android-studio.org/安装环境要求:其中JDK的最低版本是1.7,所以系统空闲内存至少2GB。如果你要安装andriod8.0左右的版本,最好内存能有8GB。AndroidStudio安装过程:以android-studio-id…

    2022年6月26日
    26
  • java:字符和字节区别

    java:字符和字节区别一 定义 1 位 bit 是计算机内部数据储存的最小单位 2 字节 byte 是计算机中数据处理的基本单位 习惯上用大写 B 来表示 1B byte 字节 8bit 位 3 字符 char 是指计算机中使用的字母 数字 字和符号 依据字符不同的编码格式 每个字符单位对应的字节数是不一样的 二 字符和字节区别 见表 1

    2026年3月19日
    2
  • Android 【实现自动轮询的RecycleView】

    Android 【实现自动轮询的RecycleView】

    2021年3月12日
    169
  • redis搭建集群并用TreeSoft管理

    redis搭建集群并用TreeSoft管理前言 redis 作为一款高效的 NOSQL 数据库已经深入贯彻和落实到我们的日常开发代码中 作为缓存 时间控制 数据仓库 队列等使用方法层出不穷 简直是开写代码 居家旅行之必备良药 曾经 我们的项目都是单体的 直到后来逐渐演变为微服务 一个将我们的工程解耦成多个工程的体系 然后随着我们项目的访问量越来越高 后台的吞吐量也越来越大 如果我们还采用的单体 redis 性能很容易形成瓶颈 如何突破单体 r

    2026年3月17日
    1
  • win10 使用workon

    win10 使用workon首先设置环境变量变量名是 WORKON 变量地址是 F ENV 自己指定 进入命令行 使用命令 pipinstallvi winmkvirtual 创建虚拟环境 workon 查看有哪些虚拟环境 wo

    2026年3月18日
    2
  • 超详细!ActionBar使用详解

    转自:https://www.cnblogs.com/mjsn/p/6150824.html一、ActionBar介绍  在Android3.0中除了我们重点讲解的Fragment外,ActionBar也是一个非常重要的交互元素,ActionBar取代了传统的tittlebar和menu,在程序运行中一直置于顶部,对于Android平板设备来说屏幕更大它的标题使用Action…

    2022年4月18日
    135

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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