news 2026/8/9 1:59:07

【C语言】(指针篇)指针的定义

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C语言】(指针篇)指针的定义


喜欢这个文章可以给主页Mem0rin点一个关注互三,一起进步!

总算是学完了指针了,目前打算写三篇指针相关的博客,后面两篇讲指针的运算和遍历指针的传参

文章目录

    • 一、指针的定义
      • (一)指针的概念
      • (二)指针的类型
      • (三)指针的大小
    • 二、指针的赋值
        • 取地址操作符`&`:
    • 三、指针的使用
      • 解引用操作符`*`

一、指针的定义

(一)指针的概念

简单的来说,指针就是地址,记录着内存中元素的位置,指针的操作就是对地址的访问。打个比方来讲,我在公寓里找你家的门牌,指针的操作决定了我接下来的行为:开门,换一个门,到一个指定的门,或者对房间进行改装等。

(二)指针的类型

指针的使用往往和变量相绑定,不同的变量会有对应的指针变量。
比如:char类型的变量的指针就是char*int类型的变量的指针就是int*,结构体struct也有对应的指针,比如对于结构体struct s的指针是struct s*,甚至我们可以对char*求指针,得到二次指针char**
其实还有一种指针类型是void*,作用之后会讲到。

(三)指针的大小

指针变量通常和局部变量一起存储在栈区,本身不管是什么类型,统一占用4/8个字节,是4还是8由平台的位数决定。

二、指针的赋值

指针是存储地址的变量类型,那怎么存储呢。下面仅介绍最常规的方法:

取地址操作符&

&可以得到变量对应的最小地址,最小地址指的是变量在内存中占有的字节的最小地址。比如在以下的代码中:

#include<stdio.h>intmain(){inta=20;int*p=&a;printf("%p\n",p);return0;}>>>0x000000651379F734

此时打印出的地址是0x000000651379F734,如果我们通过内存窗口去看a此时的内存:

a占用的内存为

0x000000651379F734 0x000000651379F735 0x000000651379F736 0x000000651379F737

&a会选择其中的最小地址,也就是0x000000651379F734

三、指针的使用

有存储就会有调用,那么指针是怎么通过地址对变量产生影响的呢

解引用操作符*

有取地址操作符&,就有解引用操作符*,作用是&的逆序操作,也就是把地址还原成指向的变量。
在如下代码中:

#include<stdio.h>intmain(){inta=20;int*p=&a;printf("%p\n",p);printf("%d\n",*p);printf("%p\n",&*p);return0;}>>>000000F53A31FB1420000000F53A31FB14

p表示a的地址,为000000F53A31FB14
*p通过解引用,还原出了a,因此*p是整型变量,值为20,
&*p可以理解成&*相互抵消,也可以理解成&*p还原的a再取一遍地址,因此还是000000F53A31FB14

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 11:10:23

重工业、轻工业和复杂装备行业的设备维护策略制定:目标、策略、实施框架和工具等的差异

在工业生产领域,不同类型的设备和系统因其运行模式、价值、复杂性和在生产流程中的关键性不同,对维护目标的选择和优先级排序有着显著差异。将统一的维护策略应用于所有设备,不仅效率低下,而且可能导致资源错配和潜在风险的忽视。因此,根据设备的具体特性,量体裁衣地选择…

作者头像 李华
网站建设 2026/8/9 17:06:20

医疗健康领域应用:Linly-Talker构建智能导诊数字人

Linly-Talker&#xff1a;构建医疗智能导诊数字人的全栈实践 在智慧医院建设提速的今天&#xff0c;患者一进门诊大厅就面对长长的导诊队伍、重复的问题被问了一遍又一遍&#xff0c;而导医人员却疲于应付基础咨询——这样的场景正逐渐成为过去式。越来越多的医疗机构开始探索用…

作者头像 李华
网站建设 2026/8/7 22:34:30

索尼腾讯握手言和:侵权官司收场,合作再升级!

近日&#xff0c;备受业界关注的索尼诉腾讯游戏侵权案终于迎来尾声。双方在法院调解下达成保密和解&#xff0c;正式“握手言和”&#xff0c;并宣布将在多个项目上继续深化合作。此事不仅结束了长达半年的法律拉锯&#xff0c;也为中日两大游戏巨头在全球市场的协同打开了新局…

作者头像 李华
网站建设 2026/8/7 22:53:41

Linly-Talker表情驱动揭秘:情感化数字人的关键技术突破

Linly-Talker表情驱动揭秘&#xff1a;情感化数字人的关键技术突破 在虚拟主播直播间里&#xff0c;一个面容亲切的数字人正微笑着回答观众提问&#xff0c;她的口型与语音完美同步&#xff0c;说到动情处眼神闪烁、眉头轻扬&#xff0c;仿佛真有情绪流动。这不是电影特效&…

作者头像 李华
网站建设 2026/8/9 10:26:46

一阶低通数字滤波器定点补偿算法C语言函数探秘

一阶低通数字滤波器定点补偿算法C语言函数 这函数可以实现一阶低通数字滤波器定点运算结果和浮点结果完美对应&#xff0c;不会出现精度损失问题。在数字信号处理的世界里&#xff0c;一阶低通数字滤波器是个常见且实用的工具。但传统的定点运算&#xff0c;很容易出现精度损失…

作者头像 李华