C语言,指针变量的*p,p以及&p的区别

您所在的位置:网站首页 a-p~p~p是什么 C语言,指针变量的*p,p以及&p的区别

C语言,指针变量的*p,p以及&p的区别

2024-07-12 15:08:19| 来源: 网络整理| 查看: 265

关注公众号“码农帮派”,查看更多系列技术文章:

 

以下面的情况说明:

int a = 5;

int* p = &a;

-----------------------------------------------------------------------------------------------------------

结论:

*p   是指针变量p指向的变量a的存储内容,*p = 5;

 p   是指针变量的存储内容,因为p指向a,所以p的存储内容(存储空间的值)就是系统为变量a分配的存储地址;

&p  是对指针变量p进行取地址的操作。

-----------------------------------------------------------------------------------------------------------

分析:

int a = 5;

int* p = &a;

int* q = p;

【说明】

上面的程序中首先声明了一个int类型的变量a,初始化为5;这个过程为:

 

变量存储空间存储地址a5#ffa1

在初始化时,存储空间存储的是int型的值5,存储地址是由系统自动分配的,同理要声明一个指向a的指针,在初始化的时候赋值给指针变量的值应该是变量a的存储地址,故而有 int* p = &a;

 

变量存储空间存储地址a5#ffa1p#ffa1#ffc0

 

在下面的程序中:

 

int arr[] = { 1, 2, 5, 7 };

int* parr = arr;

一眼看去为什么arr没有取位运算符呢?因为数组变量名就代表数组的首地址(也就是数组的地址)。

同理,要是声明另外一个int类型的指针变量q:

(1)

int* q = p;

声明了一个int类型的指针变量,并将指针变量p的值赋予q,同样是变量,a = 5,5是变量a的存储空间的值,那么p=?,p等于p存储空间的那个值,即p=#ffa1(a的存储地址);现在将这个值赋给了指针变量q,正如a初始化的过程一样,int a=5的过程,是将5存储在了int类型变量的存储空间之中,初始化指针变量q时,也是将等号右边的值存储在q的存储空间之中,上边的操作的结果如下:

 

变量存储空间存储地址a5#ffa1p#ffa1#ffc0q#ffa1#ffb1

使得指针变量q指向了变量a。

【说明】

从上面的操作可以看出,p代表的就是指针变量p的存储空间的值,上图中的#ffa1,也是p指向的变量的存储地址。(p的值如上图红色)

(2)

int* q = &p;

声明了一个指针变量q,并对q进行初始化,将指针变量p的存储地址赋给了指针变量q,那么在q的存储空间中存储的就是p的存储地址,上面的操作的结果就是:

 

变量存储空间存储地址a5#ffa1p#ffa1#ffc0q#ffc0#ffb1

使得指针变量q指向了指针变量p.

【说明】

从上面的操作可以看出,&p代表的是指针变量p的存储地址。(p的值如上图红色)

(3)

int* q = *p;

声明了一个指针变量q,并对其初始化,这一过程的操作如下:

 

变量存储空间存储地址a5#ffa1p#ffa1#ffc0q5#ffb1

为指针变量q初始化,q的存储空间中存储的值为5.

【说明】

1.从上面的操作可以看出,是将*p的值赋给了q,p指向变量a,p=#ffa1,而*p的过程就是获得p地址处的存储空间的值,即*(#ffa1)=5,也就是将5赋给了指针变量q,q的存储空间存储的是5;

2.指针变量是指向某一变量的变量,在其存储空间中存储的一般是其他变量的存储地址,上面的初始化过程int* q = *p;是非常危险的,有可能造成程序奔溃。

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭