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

指针指向常量_常量指针的四种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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python 字母大小写的转换

    Python 字母大小写的转换1name="AdaLovelace"2print(name.upper())3print(name.lower())

    2022年7月6日
    20
  • 激活成功教程版游戏盒子下载_pixaloop激活成功教程版

    激活成功教程版游戏盒子下载_pixaloop激活成功教程版Typora收费了,个人理解想让我花小钱钱,不可能但是用习惯了,懒得换,怎么办用不收费的旧版就ok了正巧之前重装系统有下载的安装包,分享给大家了,需要的随意,安装包的时间是2021/11/22与2021/04/07两个版本的里面有一些其他软件,需要的自取https://yxmiaoyu.lanzouo.com/b01cyja5c密码:windows…

    2022年10月12日
    0
  • win server服务器 关闭危险端口 135,137,138,139,445的方法

    win server服务器 关闭危险端口 135,137,138,139,445的方法转至:https://www.cnblogs.com/su-root/p/10988875.htmlWindows默认开放135、137、138、139和445五个端口,都与文件共享和打印机共享有关

    2022年7月2日
    26
  • 一、导航菜单_苹果cms什么导航菜单

    一、导航菜单_苹果cms什么导航菜单一、导航菜单即页面样式,组成很简单,即一个文本输入框<input>和一个搜索图标,这里图标可以自行搜索下载一个,或者像下面一样使用在线图标,全部代码如下:先在<header&gt

    2022年8月1日
    1
  • 自动化测试框架[Cypress PO模式]

    自动化测试框架[Cypress PO模式]【附源码】在Cypress中并不认为PO是个很好的模式,Cypress认为跨页面共享逻辑是一个反模式(Anti-Pattern),在Cypress中,它提供了很多方式,允许用户通过更简单的方式直接设置被测应用程序达到的待测试状态,不需要再不同页面一遍又一遍的执行相通操作

    2022年6月1日
    33
  • XPS文件转换为PDF不再愁!全新XPS/EPS文档处理神器Aspose.Page来啦!

    XPS文件转换为PDF不再愁!全新XPS/EPS文档处理神器Aspose.Page来啦!近月,针对Aspose.XPS和Aspose.EPS做了一些改动,将其合并成Aspose.Page,同样可以使用现有许可证访问这两种产品的所有功能。Aspose.Page(点击下载)是集成On-PremiseAPI,以.NET和Java应用程序中创建,操作或转换XPS,EPS和PS文件。或使用免费应用程序即时查看或转换文件。功能亮点Aspose.Page允许文档转换。例如,您可以将XPS…

    2022年5月4日
    70

发表回复

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

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