c语言指针与值,c语言指针的值

dfnjsfkhak 21 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言指针与值的问题,于是小编就整理了3个相关介绍c语言指针与值的解答,让我们一起看看吧。

  1. c语言指针详细讲解?
  2. c语言指针三要素?
  3. 如何向计算机小白解释C语言指针?

c语言指针详细讲解?

C语言中指针是一种数据类型,指针是存放数据的内存单元地址

计算机的内存拥有大量的存储单元,每个存储单元的大小为1,为了便于管理,必须为每个存储单元编号,该编号就是存储单元的“地址”,每个存储单元拥有一个唯一的地址。

c语言指针与值,c语言指针的值-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

指针变量除了可以存放变量的地址外,还可以存放其他数据的地址,例如可以存放数组函数的地址。

c语言指针三要素?

   c语言指针三要素:数据类型 标识符

指针变量的类型、变量的值和变量的地址。

c语言指针与值,c语言指针的值-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

显然,地址就像是要访问存储单元的指示标,在高级语言中形象的称为指针。

    地址就是指针,指针就是地址。

如何向计算小白解释C语言指针?

可以从以下几个方法去理解指针

c语言指针与值,c语言指针的值-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

1、用数组来解释

指针一般包括一个地址和地址指向的内存值,

例如,char ※c="abc",c为地址,是一个占用4个字节是地址,值"abc"就是你只要找到了c的地址,那么就可以对值进行操作

2、用链表来解释

数组中的值的地址在内存中是有序的,链表是无序的,更加容易说明指针的作用,如图,链表中一般包含一个集合的值和一个指向下一个节点的指针地址,如果理解了链表这个梗,相信指针也没啥难的了

所以,可以从以上2个方面去了解下,初学者学指针比较难,没啥技巧,好事多磨,多编码就会渐渐懂了

可以把指针看成门牌号,指针类型看成房间类型。

比如定义一个整数指针 int *p,此时没有初始化,所以指针p不知道指向的哪个门牌号。此时再申请一个变量int a =0,说明我们申请到了一个房子,里面装的是整数0,可以用&a获得a的地址,也就是门牌号。这时可以给指针p赋值,p=&a,指针p就指向了a的门牌号,里面装的是int 类型的整数0,使用*p就可以获取指针指向的房间里面关着的值0。

其实指针p也有自己的房间门派号,所以可以定义一个二重指针,指向整数指针的指针int **pp = &p。也就是pp指向的是p的门牌号,使用*pp可以打开这间房间获取到里面的内容,发现存储的是一个指向a的指针,再使用**p就可以获得a房间装的值0。

C语言指针真的是C语言中的一个难点,难在哪里?倒不是因为它的概念难,而是讲清楚、讲明白指针概念的方式很难。英文中,指针的单词是pointer,把这个单词翻译成中文时都翻译的“指针”。“指针”这个词语别说在C语言中的使用了,就是在平时日常生活中我们对“指针”这个词语也不一定熟悉。所以有时候我在想,把pointer翻译成地址是不是会好一点,虽然地址的英文单词是address,但是最起码初学者看到“地址”这个词语要比看到“指针”这个词语好理解。

如何向小白解释C语言指针,那必须得用到一个比喻。有一个指针变量p和一个整型变量a,它们分别住在两个不同的房子里。指针变量p的房子叫指针房;整型变量a的房子叫整型房。平日里两者不相往来,互相之间也没有联系。

但是有一天变量a生病了要去医院挂号,但是上班不能请***,咋办?于是就想请变量p去帮忙代办,谁让变量p是个无业游民呢!那么此时变量p就代表变量a了。那么怎么把这两者“代表”起来呢?就靠星号*这个运算符了,也就是*+p的组合就可以代表a了,这个组合用文字书写出来就是*p。至于为什么要用*与p的组合才能代表a?不能直接用p来代表a吗?这个你就别管了,你死记硬背就行了。就像1+1为什么等于2你会去管吗?

我在“C语言编程技术分享”,这个公众号里有一些C语言的基础文章,供小伙伴们参考!

到此,以上就是小编对于c语言指针与值的问题就介绍到这了,希望介绍关于c语言指针与值的3点解答对大家有用

标签: 指针 地址 变量

上一个无人机飞防经理培训内容,无人机飞防经理培训内容有哪些

下一个python循环编程题,python循环题基础题