0


C语言指针变量与普通变量

前言

想必在萌新的世界里必然会出现这样的一幕:当几人畅聊时突然有人说起了编程世界的恐怖的存在->指针,然后众人闻之色变,然后仰天长叹......

回到这里让我们一探指针的风采吧!

首先来个指针的概念

指针即某一个变量单元的地址,存放地址的变量称为指针变量,通过解引用该指针变量就可以访问该地址对应的变量单元

地址就好比一个房间号,通过房间号就可以确定你(变量)住在哪里,如果你需要帮助,那么他们就可以通过地址找到你从而提供帮助(即对该变量进行访问)

因此只要你提供给他们地址,他们就能为你服务

指针变量存储地址

地址是一个数,将地址打印一下

其中%p是将地址以十六进制的形式打印出来,&是取地址运算符,&a将a的地址取出来

可见地址也就是一个带有类型的数而已

提示:地址是一个数,它的类型是type(type可以是int,float,double....,这取决于地址所对应的变量是什么类型的)*

指针变量只能存放地址,不要把一个整数赋给指针变量,编译器会对这种行为报警

使用普通变量存储地址:

注意:每次运行程序编译器会给变量随机分配地址,因此每次运行时a的地址会不同

此时pa存储了a的地址,但是没有意义,你无法通过pa去找到这个变量a,你把地址给了普通变量,但是普通变量无法提供“上门服务”

使用普通变量存储地址这种行为是非法的,编译器会发出警告

因为a的类型是int,所以&a的类型是int*,将&a赋给int类型的变量p,编译器会进行算术转换将&a拷贝后得到一个int类型的临时变量,然后再将临时变量赋给变量p

使用指针变量存储地址

说明:

定义了一个指针变量pa,pa的**类型是int ***,就好比a的类型是int,

当你将你的地址给了指针变量pa之后,如果需要帮助,那么pa就可以通过你给它的地址找到你

指针变量的访问功能(解引用)

指针变量pa存储了变量a的地址,通过解引用便能找到a,

解引用:

*指针变量

其实pa就是a,看一下pa与a的地址就清楚了

​​​​​​​

可见*pa就是a

指针变量与普通变量的比较

普通变量a存储的是3,因此a==3

指针变量存储的是地址,因此pa==&a

而*pa==a;

当指针变量存储了某一个变量的地址,那么就说这个指针变量指向了该变量。

这里的指向是一种抽象的概念

指针变量就介绍到这里了,若有错误之处还请敬请指正,吾必虚心学习!

标签:

本文转载自: https://blog.csdn.net/qq_42591783/article/details/119581339
版权归原作者 流浪孤儿 所有, 如有侵权,请联系我们删除。

“C语言指针变量与普通变量”的评论:

还没有评论