C++死磕基础之指针篇(一)--指针的定义

本篇文章将着重讲解C/C++中的重要知识点—指针,并会实例演示,希望通过讲解,可以让大家能够更好地理解以及使用指针。

一.什么是指针

1.定义
指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。

简而言之:计算机中的内存都是编址的,每个地址都有一个符号,类似于家庭地址和电脑的IP地址。指针变量就是用来存储这些地址变量并且可以操作地址变量。指针也是一个无符号整数

先用一个例子让大家初步了解指针变量的意义:

在这里插入图片描述
看完图片可能大家都有些疑惑,哪个是指针变量?哪个是地址变量?那么现在,我就来分析一波:

首先,我们看到右边有a[0]和a[9],熟悉数组的都知道,这是数组下标0和数组下标9所存储元素的位置。在数组下标0的位置存储了元素1,在数组下标9的位置存储了元素19。
再看左边有个变量P,它指向了数组a[0]的位置,P中是&a[0],在C++中“&”是取地址符号,那么很明显,&a[0]表示取数组下标为0时的地址,变量P指向这个地址。
综上,P就是一个指针变量,它指向了数组中的第一个元素的位置,所以P是一个数组指针。

2.指针的声明方式
通常我们使用“*”来声明指针变量,具体的书写格式为:

int* P;//P为整型指针变量
char* P;//P为字符型指针变量

注意:指针的值是一串地址,这个地址是内存空间上已有的。比如:需要找某个人,我们可以通过家庭地址再确定这个人,而指针就是扮演找到家庭地址的作用,指针的值是家庭地址的门牌号,真正的值是住在这个家中的人。

二.指针实例演示

void main(){
	int a=1;//定义整型变量a
	int* p=NULL;//初始化指针变量
	p=&a;//指针变量存储a的地址
	cout<<p<<endl;//输出指针p
	system("pause");
}

结果:
在这里插入图片描述
这里的0099FC60是整型变量a的地址(存储变量a的空间),指针变量确实是一串地址。

那么,如何通过指针真正地取出地址中的值呢?代码做个小小的变化就可以实现:

void main(){
	int a=1;//定义整型变量a
	int* p=NULL;//初始化指针变量
	p=&a;//指针变量存储a的地址
	cout<<*p<<endl;//输出指针p中存储的具体值
	system("pause");
}

结果:
在这里插入图片描述
只要在指针p前加"*"就可以获取指针地址中的值,是不是很简单呢。
这里的 *p=a(指针地址里的值为存储的变量值),p=&a(指针为变量的存储地址)。

指针的简介以及如何声明指针就先讲解到这,困难重要的知识点需要慢慢消化吸收,这篇文章只是指针的开始,后面将有一系列的文章会着重讲解指针。

今天是武磊的生日,也是亚冠上海上港逆转悉尼FC的日子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值