C++速解 指针

指针: 指针是语言的灵魂

地址

介绍指针前先给解释一下地址:
	是内存单元的编号(内存可以被CPU访问,硬盘不可以被CPU访问,硬盘的数据要是想被CPU访问那就把数据导入到内存中)
	地址是从零开始ide非负数:范围:0--FFFFFFFF
	这里给大家举个例子:
	double* p;
	double a;//因为a是double类似数据 所以占8个字节,一个字节有8位,一个字节是一个地址
	p=&a;// p里面存放的是a中8个字节的首地址

指针

地址就是指针,指针就是地址;
指针变量是存放内存单元地址的变量;
指针本质是一个操作受限的非负整数
    int *p;
	int a = 5;
	p = a;

在这个简单代码中,你可以判断一下是否错误,如果没有错误,p应该什么?
答案是:这是一个错误代码,因为:int* p;//p是变量的名字,int *表示p变量只能存储int 类型变量的地址。而当p没有指向是,他里面存放的是一个垃圾值,指向一个未知的地址

分类

	1. 基本类型的指针
	2. 指针和数组
	arr[5]={1,2,3,4,5}
	在这个数组中arr是指向第一个数据的首地址,arr[1] 相当于*(arr+1);   本质上:arr[i] 等价于*(arr+i)  所以:arr[3]==3[arr];

内存

	在32位操作系统下,指针是占4个字节空间大小
	在64位下,占8个字节大小

空指针

	指针变量指向内存中编号为0的空间,用来初始化指针,空指针指向的内存是不可以访问的,是不可以访问的 原因:0--255编号的指针是系统占用的,不可以访问。

野指针

	指针变量指向非法的空间:

const修饰指针

	const修饰指针—常量指针  只能改变指针方向 不能改变指针值
		const int * p = &a ; p =&b;(对)   *p =3;(错)
	const修饰常量—常量指针  只能改变指针值,不能改变指针方向
		int * const p=&a;*p =5434;(对)  p = &b错 
	const即修饰指针又修饰常量,  指针值和指针方向都不可以改变
		const int * const p=&a;  *p= 232;错   p=&b 错 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值