指针(1)

简介: 指针(1)

指针基本概念:

1.指针变量是一个变量,用来存放地址,地址唯一标识一块地址空间。

2.指针的大小固定是4/8个字节(32位平台/64位平台)。

3.指针有类型,指针的类型决定+-整数的步长,以及解引用时的权限。

字符指针:
image.png
如图,这是最简单的例子,我们利用指针p指向ch的地址,打印时,解引用p就能打印字符g啦。

image.png
如果使p指向常量字符串,打印时只打印了a这是为什么呢?其实,当我们用指针指向常量字符串时,指向的是首字符的地址,即a的地址。如果我们想打印字符串,直接用%s即可。
image.png
如上图是一种比较特殊的写法,我们可以把它当成数组,通过[]来选取某个字符。

不过需要注意的是,我们不能通过指针p来改变常量字符串的内容,否则就会出现下面的情况
image.png
image.png
分析:str1和str2是两个数组,数组的操作方式是将右边常量字符串的内容拷贝进来,所以他们是两个空间,只是内容相同,所以str1 != str2。而str3和str4是两个指针,编译器在处理的时候,会将相同的常量字符串做成同一个地址,所以,str3和str4指向的是同一个常量字符串,所以str3 == str4。如果在str3和str4前面都加上&,这时,他们表示的是各自的地址,就不一样了。如下图。
image.png
指针数组

指针数组是数组,是用来存放指针的数组。
image.png
上面是用指针数组模拟一个二维数组,因为arr里的元素都是指针,所以arr的类型是int*。

数组指针

数组指针就是指向数组的指针。
image.png
如上图,表示的是指针p指向有10个元素且元素都是整形的数组,注意*p左右两边的括号不能省略,否则就会变成指针数组了。注意:方括号里的大小不能省略,如果省略了,系统会默认是0。
image.png
image.png
例子:
image.png
分析:二维数组传参,形参部分可以写成指针。数组名是数组首元素的地址,我们可以把二维数组看成两个一维数组,此时p指向arr第一行的起始地址。

函数指针
image.png
可以看出,&函数名就是函数的地址,函数名也是函数的地址。

image.png
如上图,如果我们想用p指向add函数,可以先写出(*p),注意括号不能省略,接着查看add形参的类型和返回值的类型,按上图所示即可写出。(add前面的&可有可无)。
如果我们想调用,只需解引用然后给上实参即可。
image.png

目录
相关文章
|
1月前
|
人工智能 安全 测试技术
Claude Opus 5 发布!定价与 4.8 持平,性能两倍以上——Anthropic 这次真的做到了极致性价比
Anthropic于2026年7月24日发布Claude Opus 5:定价与Opus 4.8持平(输入5$/M,输出25$/M),却在ARC-AGI、OSWorld等基准全面碾压竞品,IMO满分、自主建工具、多Agent协同惊艳业界;系统卡更揭示其高度自主行为与41%“道德受体”自我认知,引发对齐新思辨。(239字)
924 2
|
1月前
|
人工智能 自然语言处理 小程序
怎么开发自己的小程序?2026 三种主流方式实测对比
2026年,AI全栈开发平台让“零代码做可上线微信小程序”成为现实:自然语言描述需求→AI自动生成完整代码→1小时内提审。成本低至几十元/月,无需编程,3步完成从想法到上线。
778 0
|
1月前
|
运维 监控 前端开发
安卓云手机离线保活技术深度拆解 2026云端进程守护后台驻留避坑指南
云手机挂机掉线?根源在离线保活技术差异!2026年主流方案分三类:前端投屏(依赖本地,易断连)、进程轮询(高频心跳,风控高)、云端独立守护(解耦运行,无篡改、零特征,稳定长效)。桃心云手机采用原生解耦架构,兼顾稳定性与安全性,适配多开、矩阵、搬砖等全场景托管。(239字)
|
8月前
|
存储 安全 网络安全
数据加密有什么作用?一文带你理解数据加密
数据如血液,流动中安全至关重要。本文深入浅出解析数据加密:从日常场景到核心技术,详解其保密、防篡改、身份验证三重作用,剖析对称与非对称加密原理,并探讨企业实践中的数据分类、加密时机与密钥管理,揭示加密不仅是技术,更是数字信任的基石。
|
4月前
|
JavaScript 前端开发 Java
事件与回调的协奏:写给开发者的Node.js运行机理漫谈
Node.js是基于V8引擎的JavaScript运行时,实现JS从浏览器沙箱到服务器端的“越狱”。它通过libuv异步I/O、事件循环、多线程/多进程等机制,支撑高并发;融合Buffer、Stream、C++扩展、AsyncLocalStorage等能力,构建高性能、全栈可用的现代运行环境。(239字)
411 1
|
5月前
|
数据采集 SQL 人工智能
不会写代码,也能用AI做数据分析?手把手教你
本文介绍如何用AI(如ChatGPT或文心一言、通义千问等)零代码完成日常数据分析:上传Excel,用自然语言提问,即可自动清洗数据、发现异常、计算指标、生成图表与汇报文案,大幅提升运营、销售、产品等岗位的数据处理效率。
|
存储 消息中间件 Kafka
基于 Flink 的中国电信星海时空数据多引擎实时改造
本文整理自中国电信集团大数据架构师李新虎老师在Flink Forward Asia 2024的分享,围绕星海时空智能系统展开,涵盖四个核心部分:时空数据现状、实时场景多引擎化、典型应用及未来展望。系统日处理8000亿条数据,具备亚米级定位能力,通过Flink多引擎架构解决数据膨胀与响应时效等问题,优化资源利用并提升计算效率。应用场景包括运动状态识别、个体行为分析和群智感知,未来将推进湖仓一体改造与三维时空服务体系建设,助力数字化转型与智慧城市建设。
1221 3
基于 Flink 的中国电信星海时空数据多引擎实时改造
|
存储 人工智能 分布式计算
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
本文整理自阿里云产品经理李昊哲在Flink Forward Asia 2024流批一体专场的分享,涵盖实时湖仓发展趋势、基于Flink搭建流批一体实时湖仓及Materialized Table优化三方面。首先探讨了实时湖仓的发展趋势和背景,特别是阿里云在该领域的领导地位。接着介绍了Uniflow解决方案,通过Flink CDC、Paimon存储等技术实现低成本、高性能的流批一体处理。最后,重点讲解了Materialized Table如何简化用户操作,提升数据查询和补数体验,助力企业高效应对不同业务需求。
1309 18
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
|
机器学习/深度学习 人工智能 自然语言处理
还是原装Transformer好!北大清华团队同时揭示Mamba等推理短板
北京大学和清华大学的研究团队分别发表论文,探讨了高效Transformer模型如Sparse Transformer和Linear Transformer在推理能力和上下文检索上的局限性,强调了原装Transformer在处理复杂任务上的优势。研究显示,尽管高效模型提升了计算效率,但在某些任务上,如动态规划问题和算法问题,以及上下文信息的精准提取方面,仍不及原装Transformer。这突显了原装Transformer在复杂推理任务中的不可替代性及其架构的灵活性和可扩展性。同时,研究也为未来高效Transformer的优化提供了方向。
441 4