关于C++指针的学习

简介: c++指针学习

菜鸟教程中,对于C++指针,给出了一段简短的代码:

一、存储空间

int main ()
{
   
   int  var1;
   char var2[10];

   cout << "var1 变量的地址: ";
   cout << &var1 << endl;

   cout << "var2 变量的地址: ";
   cout << &var2 << endl;

   return 0;
}

var1是整数类型的变量,被分配了4个字节的空间存储;var2是字符类型数组,包含10个连续元素,每个元素占1字节。
现在只分配了对应大小的内存空间,由于未初始化,所以现在现在分配的存储内容是随机的。

输出的结果是
var1 变量的地址: 0xbfebd5c0
var2 变量的地址: 0xbfebd5b6
内存是十六进制,c0-b6 = 10

结合栈的知识:
假设var1存的四个字节的内存是1234,那么进栈时是4先入栈,地址从高到低,对应:
4 c3
3 c2
2 c1
1 c0 <---var1首地址

假设var2存的十个字节为1-10
那么接着压入就是
10 bf
9 be
.
.
1 b6 <---var2首地址
因此,地址之差就是var2内存10。在了解了存储空间后,进行到指针内容。

二、指针

同样菜鸟教程也给到了一个简短的代码

int main ()
{
   
   int  var = 20;   // 实际变量的声明
   int  *ip;        // 指针变量的声明

   ip = &var;       // 在指针变量中存储 var 的地址

   cout << "Value of var variable: ";
   cout << var << endl;

   // 输出在指针变量中存储的地址
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // 访问指针中地址的值
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

图示如下:
0x00
0x00
0x00
0x14 <--c0首地址
占了四个字节
代码里使用的是int ip,但是指针变量只存一个地址,也就是四个字节最后入栈的首地址。在输出ip时,只会读出c0
在输出
ip时,告诉编译器请从 ip 存储的地址开始,连续读取 sizeof(int) = 4 个字节,并按整数规则解释,最后读出20

0x00
0x00
0x00
0x14 <--c0首地址
如果定义ip时,使用的是char ip,
注意此时,ip = &var; 应该把var强制字符化
ip = (char)&var
此时,输出ip时会读出c0;输出
ip会读出0x14,还是20
但注意,输出使用的命令是cout,cout 遇到 char 类型时,会把它当作字符输出,而不是数字。注意看,此时的ip对应的c0与*ip对应的20都是不可打印的字符,所以最终输出都是[方框]

相关文章
|
28天前
|
存储 弹性计算 运维
阿里云服务器怎么买?四种主要方式详解+注意事项,新手购买参考教程
本文介绍了阿里云服务器的四大购买方式的适用场景与注意事项:自定义购买支持全参数精细配置,适合有技术基础的企业用户;快速购买通过预设模板简化流程,助力新手快速上云;活动购买提供低至38元/年的限时优惠,覆盖99计划、学生300元抵扣金、百炼先用后返等多重权益;云市场镜像购买提供预装环境的开箱即用方案,适合中小企业快速建站。
|
9天前
|
数据采集 存储 算法
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
本文探讨视频RAG中的核心挑战——如何为无时间结构的视频转录文本设计有效分块策略。对比传统文本分块,提出基于停顿、重叠窗口、递归切分及LLM驱动的主题分块四层方案,实现细粒度检索与全局理解兼顾,提升视频内容检索准确性与上下文完整性。
131 13
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
|
10天前
|
机器学习/深度学习 人工智能 网络架构
深度解析:Transformer 的“灵魂”——QKV 变换的物理直觉
本文用图书馆检索等生活隐喻,从物理意义与认知科学角度解析Transformer中QKV设计的精妙本质:解耦查询(q)、键(k)、值(v)三重角色,实现语义分离、避免自注意力“自恋”,模拟人类动态信息路由的认知过程。(239字)
209 13
|
8天前
|
自然语言处理 前端开发 安全
2026 世界杯钓鱼即服务平台攻击机理与防御体系研究
2026世界杯前夕,“Ghost Stadium”中文钓鱼即服务平台发动大规模攻击,涉案4.7–10亿美元,受害超4.7万人,窃取FIFA凭证2500+条,注册恶意域名超4000个。该平台采用React+Layui实现像素级克隆、SSO模拟与多语言适配,构建覆盖社交广告、搜索、IM的立体攻击网络。本文基于实证分析,提出检测、响应、溯源、治理闭环防御体系,强调跨机构协同与动态对抗。(239字)
142 10
|
10天前
|
人工智能 机器人 Shell
专访 Bub 作者们:如何开发一个好记性又懂人的 Agent
这期播客主要聊了 Bub 是什么、它和普通聊天机器人/Agent 框架有什么不同,以及它背后的 Tape 记忆机制和插件化设计。简单来说,Bub 可以理解成一个以 channel 为中心的 AI Agent 框架。它不是只在命令行里写代码,也不只是一个群聊机器人,而是希望把不同 IM、命令行、工具、记忆和运行上下文连接起来,让用户可以根据自己的场景做一个定制版 Agent。
134 9
|
10天前
|
传感器 人工智能 开发工具
Meta AI眼镜百万销量:AI硬件的iPhone时刻到了?
Meta Ray-Ban AI眼镜2026年Q1销量破百万,标志端侧多模态AI落地成熟。依托Llama 4端侧模型(4B参数)、实时多模态感知与云边协同,开启第一视角智能新范式。开发者可借SDK、数据集与硬件工具链抢占生态先机。
167 8
|
9天前
|
人工智能 资源调度 调度
AI时代,大学生应该提前准备什么?
AI时代,大学生面临就业重塑与能力升级的双重挑战。本文聚焦认知重构、三大核心能力(统筹力、技术力、实战力)及行动路径,倡导从“工具使用者”进阶为“AI决策者”,以T型+AI复合素养应对变革,在人机协同中抢占未来先机。
|
28天前
|
传感器 算法 物联网
从裸机到智慧物联:嵌入式RTOS任务调度原理深度剖析
本文深入剖析RTOS任务调度原理,从裸机程序的局限性切入,揭示超级循环在实时性、优先级响应和周期精度上的缺陷;系统在后面将讲解任务控制块、状态机、调度算法与上下文切换四大核心机制,助开发者理解vTaskDelay等API背后的本质。
136 5
|
9天前
|
安全 人机交互 调度
《零基础搭建OpenClaw迁移训练环境指南》
智能体仿真完美、落地即崩的行业死结,根源从来不是仿真精度不足,而是传统Sim2Real始终困在视觉特征匹配的表层逻辑里。本文拆解OpenClaw颠覆性的虚实迁移方案,它彻底抛弃暴力域随机化的老路,构建了一套以跨感官因果认知为核心的迁移体系。通过阶梯式虚实过渡、动态经验权重调节、执行器在线自校准与虚实数据双向闭环,让智能体学习物理世界的本质规律而非表面特征。
101 6
|
9天前
|
JSON 人工智能 测试技术
我如何用Skills+Postman,让接口测试用例自动生成、自动维护,半年零手工更新
本文揭秘如何用Postman+大模型Skills实现接口测试用例“零手工维护”:通过自动感知OpenAPI变更、智能生成并应用Collection补丁、Git化管理+CI闭环验证,6个月未手动增删改用例。核心不是生成用例,而是让用例随代码自动同步。