IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c++指针 -> 正文阅读

[C++知识库]c++指针

一.指针定义

先把《c++ primer plus》中的描述记录下,等理解后再来看此,其实很好理解。

  • 一种特殊类型的变量——指针,用于存储值的地址。因此,指针名表示的是地址*运算符被称为间接值运算符(或解除引用运算符),将其应用于指针,可以得到该地址处存储的值

人家书中还给了个例子

  • 假设manly是一个指针,则manly表示的是一个地址,而*manly表示存储在该地址处的值。

二.上代码

代码如下

	int s=1;
	cout<<"数据s的地址 &s="<<&s<<endl;
	cout<<"数据s的值   s="<<s<<endl<<endl;

	cout<<"指针的声明"<<endl;
	int *a=&s;
	cout<<"指针a的地址                         : &a="<<&a<<endl;
	cout<<"指针a的地址中值(这个值是一个地址) :  a= "<<a<<endl;
	cout<<"指针a中存的地址所指向的数据的值     : *a="<<*a<<endl<<endl;
	
	cout<<"把指针中存的地址赋值给另外一个指针:可见指针a和b地址不同,但是指针地址中存放的地址相同,当然里面地址所指向的数据也相同"<<endl;
	int *b=a;
	cout<<"&b="<<&b<<endl;
	cout<<"b= "<<b<<endl;
	cout<<"*b="<<*b<<endl;

代码输出如下:

数据s的地址 &s=0076FA8C
数据s的值 s=1

指针的声明
指针a的地址 : &a=0076FA80
指针a的地址中值(这个值是一个地址) : a= 0076FA8C
指针a中存的地址所指向的数据的值 : *a=1

把指针中存的地址赋值给另外一个指针:可见指针a和b地址不同,但是指针地址中存放的地址相同,当然里面地址所指向的数据也相同
&b=0076FA74
b= 0076FA8C
*b=1

三.上图纸

通过 *a 和 s 获取到的数据一样,但它们的运行过程稍有不同:a 只需要一次运算就能够取得数据,而 *p 要经过两次运算,多了一层“间接”。
在这里插入图片描述

四. char* p和 char *p 和(char*)p

1.char* p和 char *p 是一样的,都是定义一个char类型的指针。
2.(char*)p:表示把p强制转换为char类型的指针。

五.const char* p和char* const p

const在谁前面,谁的固定的。有同事也称为:左定值,又定址
1.const char* p:指针指向的值是固定的,地址是可变的;
2.char* const p:指针指向的值是可变的,地址是固定的;

六.读取访问权限冲突

在这里插入图片描述
在这里插入图片描述

  • 在使用未初始化的指针时,会抛出:读取权限冲突的异常。还会给出诸如 0XCCCCCCCC、0xCDCDCDCD的异常提示,解决方案很简单:给个初始值就可以了

参考:
1.C语言指针变量的定义和使用(精华)http://c.biancheng.net/view/1991.html
2.关于 char* p和 char *p,困惑,https://bbs.csdn.net/topics/370193550
3.https://zhidao.baidu.com/question/498324155965589724.html
4.https://zhidao.baidu.com/question/217041918.html
5.C++读取访问权限冲突引发异常问题https://blog.csdn.net/gabriel1217/article/details/110083837

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 15:50:34  更:2022-03-03 15:56:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:53:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码