当前位置: 首页 > news >正文

通过一个小例子来看一下C语言指针 p、*p、p、*p、*p分别代表什么

前言

在C语言中,指针是非常重要的概念。指针是一个变量,其值为另一个变量的地址。使用指针可以直接访问内存中的数据,这使得C语言非常灵活和强大。在学习C语言时相比大家都已经知道了&*的区别了,但是你知道*&p&*p又代表什么吗?

写个测试程序

下面是一个简单的C语言代码,可以用来演示上面提到的几个标识符,让我们更好的理解几个标识符的意义:

#include <stdio.h>int main() {int a = 10;int *p = &a;int **pp = &p;printf("a=%d\n", a); // 打印a的值printf("&a=%p\n", &a); // 打印a的地址printf("p=%p\n", p); // 打印p的值,即a的地址printf("*p=%d\n", *p); // 打印p所指向的变量的值,即a的值printf("&p=%p\n", &p); // 打印p的地址printf("*pp=%p\n", *pp); // 打印pp所指向的指针变量p的值,即a的地址printf("**pp=%d\n", **pp); // 打印pp所指向的指针变量p所指向的变量的值,即a的值printf("&pp=%p\n", &pp); // 打印pp的地址printf("*&p=%p\n", *&p); // 打印p的值,即a的地址printf("&*p=%p\n", &*p); // 打印p的地址return 0;
}

下面我们来运行一下这个程序看一下输出结果:

a=10
&a=0x7fff87a4ce94
p=0x7fff87a4ce94
*p=10
&p=0x7fff87a4ce98
*pp=0x7fff87a4ce94
**pp=10
&pp=0x7fff87a4cea0
*&p=0x7fff87a4ce94
&*p=0x7fff87a4ce94

这个程序定义了一个整型变量a,一个指向整型变量的指针p,一个指向指针变量p的指针pp。程序输出了上面提到的几个标识符所代表的值或地址。运行这个程序,可以看到它的输出结果,从而更好地理解这些标识符的含义。

从上面的运行结果可以看出*p打印的是a的值,也就是p指向变量的值,这点是毋庸置疑的,想必大家也都知道,那我们一起来看看其他的变量分别代表什么意思吧!

  • p:指针变量名。在定义指针变量时,需要指定指针所指向变量的数据类型。例如,int *p; 定义了一个指向int类型变量的指针变量p

  • *p:解引用操作符。它用于访问指针所指向的变量的值。例如,*p = 10; 将10赋值给p所指向的变量。

  • &p:取地址操作符。它用于获取指针变量p的地址。例如,int *p; int **pp = &p; 定义了一个指向指针变量p的指针变量pp

  • *&p:这个操作符等价于p。它首先将p取地址,然后再将其解引用,得到p本身的值。

  • &*p:这个操作符等价于p。它首先将p解引用,得到p所指向的变量的值,然后再将其取地址,得到p本身的地址。

小结

  • a*p 输出的,都是变量 a 的值。
  • &ap 输出的,都是 a 的地址。
  • &*p*&p 其实都是 p,也就是 a 的地址。

相关文章:

通过一个小例子来看一下C语言指针 p、*p、p、*p、*p分别代表什么

前言 在C语言中&#xff0c;指针是非常重要的概念。指针是一个变量&#xff0c;其值为另一个变量的地址。使用指针可以直接访问内存中的数据&#xff0c;这使得C语言非常灵活和强大。在学习C语言时相比大家都已经知道了&和*的区别了&#xff0c;但是你知道*&p和&*…...

【内摹访谈】谈谈AI爆发前夜的B端设计

本文来自摹客产品设计团队&#xff08;MPD&#xff09;的设计专栏“内摹访谈”。专栏介绍&#xff1a;专栏名称来源于西方美学理论「内摹仿说」&#xff0c;意指审美活动与摹仿活动紧密相连&#xff0c;审美不只针对表象动作&#xff0c;其核心在于由物及我&#xff0c;从表观带…...

Redis—AOF持久化

一、AOF定义 保存写操作命令到日志的持久化方式&#xff0c;就是 Redis 里的 AOF(Append Only File) 持久化功能 定义&#xff1a;以日志的形式记录每个操作&#xff0c;记录写指令不记录读指令&#xff0c;只许追加⽂件不允许修改&#xff0c;AOF保存的是appendonly.aof⽂件…...

OpenCV实例(五)指纹识别

OpenCV实例&#xff08;五&#xff09;指纹识别 1.指纹识别概述1.1概述1.2原理 2.指纹识别算法2.1特征提取2.2MCC匹配方法2.3尺度不变特征变换&#xff08;SIFT&#xff09; 3.显示指纹的关键点4.基于SIFT的指纹识别 作者&#xff1a;Xiou 1.指纹识别概述 1.1概述 指纹识别&…...

第二章 法的内容与形式

目录 第一节 法的内容与形式的概念 一、法的内容与形式的含义 二、法的内容和形式的关系 第二节 法律权利与法律义务 一、权利和义务的概念 二、权利和义务的分类 三、权利与义务的联系 第三节 法的成文形式与不成文形式 一、历史上各种法的表现形式 二、成文法与不成文…...

外包干了四年,感觉废了..

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

Git如何推送当前代码到远程仓库

第一种方法 &#xff08;建立在已经配置好用户变量和ssh基础上&#xff09; 在本地创建git仓库 git init 绑定远程仓库&#xff0c;origin是给远程仓库起的别名&#xff0c;也可以起其他名字&#xff0c;但是如果用origin&#xff0c;git push时可以不指出名字&#xff0c;如果…...

第五章 工厂模式

文章目录 一、简单工厂模式1、传统方式实现披萨订购( 可以忽略)披萨父类 Pizza子类胡椒披萨 PepperPizza子类印度披萨 GreekPizza订购披萨 OrderPizza订购披萨的 客户端 PizzaStore运行结果传统的方式的优缺点&#xff0c;新增子类需要修改的地方牵扯太多传统方式的究极耦合 2、…...

Spring MVC 参数解析(13)

目录 简介 调用流程 1. 首先&#xff0c;还是需要进行到前端控制器的doDispatch方法&#xff0c;这是我们的调用Spring MVC的核心入口方法 2. 在doDispatch方法内部&#xff0c;我们调用到了HandlerAdapter.handle(*****) 方法 3. 最终&#xff0c;我们会来到 RequestMappi…...

探索 Qt WebEngineWidgets:从底层原理到高级应用与技巧

探索 Qt WebEngineWidgets&#xff1a;从底层原理到高级应用与技巧 (Exploring Qt WebEngineWidgets: From Fundamentals to Advanced Applications and Techniques 一、Qt WebEngineWidgets 模块简介及原理 (Introduction and Principles of Qt WebEngineWidgets Module)1. Qt…...

leetcode160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…...

核心业务7:放款实现

核心业务7:放款实现 1.放款实现流程 -------------------未完成生成借款人还款计划和投资人回款计划-------------- 2.数据库表 3.前端流程 4.汇付宝流程 5.尚融宝后端流程 -------------------未完成生成借款人还款计划和投资人回款计划-------------- -------------…...

STM32F4系列芯片RTC模块介绍

RTC是“实时时钟”的缩写&#xff0c;它是一种芯片&#xff0c;在计算机等电子产品中广泛应用。RTC提供了实时时钟计时功能和存储时间的能力&#xff0c;即时钟模块&#xff0c;常用于控制和记录时间的应用场合。 RTC的工作原理 RTC主要由时钟电路、电源管理电路、晶振电路、…...

MySQL 在线人数 场景分析

一般在直播或者游戏中经常会统计用户在线人数&#xff0c;主要分为求每个时刻的在线人数和求某个时刻的在线人数两种。 【场景】&#xff1a;某个时刻的在线人数、每个时刻的在线人数 【知识点】&#xff1a;窗口函数、时间函数、sum(tag) over (order by dt,tag desc rows b…...

使用mybatis和dynamic-datasource-spring-boot-starter动态切换数据源操作数据库

记录&#xff1a;415 场景&#xff1a;使用mybatis和dynamic-datasource-spring-boot-starter动态切换数据源操作数据库。 版本&#xff1a;JDK 1.8,Spring Boot 2.6.3,dynamic-datasource-spring-boot-starter-3.3.2,mybatis-3.5.9。 源码&#xff1a;https://github.com/b…...

【日常刷题】迷宫问题

描述 定义一个二维数组 N*M &#xff0c;如 5 5 数组下所示&#xff1a; int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫&#xff0c;其中的1表示墙壁&#xff0c;0表示可以走的路&#xff0c;只能横着走…...

【Python童年游戏】满满的回忆杀—那些年玩过的童年游戏你还记得吗?那个才是你的菜?看到第一个我就泪奔了(致我们逝去的青春)

导语 滴一一学生卡&#x1f64c; 结伴上车的学生仔子们 用笑声打破车厢的沉默 大人眼里的晚高峰 是给放学后快乐&#x1f600;时光的加时 下车的学生匆匆起身带起 一阵熟悉的栀子香于&#x1f493; 是关于校园的记忆 开始零零散散地闪现 放学后集合的秘密基地/跟着城…...

C++ | 认识标准库string和vector

本文概要 本篇文章主要介绍C的标准库类型string和vector&#xff0c;文中描述和代码示例很详细&#xff0c;看完即可掌握&#xff0c;感兴趣的小伙伴快来一起学习吧。 &#x1f31f;&#x1f31f;&#x1f31f;个人简介 &#x1f31f;&#x1f31f;&#x1f31f; ☀️大家好&a…...

JAVA面试宝典: SpringCloud知识点(通俗易懂易背)

1、什么是 Spring Cloud&#xff1f; Spring Cloud 是基于 Spring Boot 的微服务架构开发工具箱&#xff0c;提供了在分布式系统中构建可靠的、弹性的、灵活的应用所需的大多数工具。Spring Cloud 中包含的子项目如下&#xff1a; Spring Cloud Config&#xff1a;配置管理工具…...

es学习笔记

集群环境下数据往哪个节点放? 路由计算&#xff1a;hash(id) %主分片的数量 集群环境下查数据怎么查&#xff1f; 分配控制&#xff1a;访问任何一个节点都能获取数据&#xff0c;随机访问到的这个节点称为协调节点&#xff08;访问了当前节点&#xff0c;不一定从当前节点…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...