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

C++递归算法使用;C++指针的使用;

1.C++递归算法使用;

int xa(int a) { printf("%d\n",a); a++; sleep(1);//先休眠再调用递归 //调用递归之前加条件 if(a < 10) { xa(a); } return a; } int main(int argc,char *argv[]) { xa(1); return 0; }

C++指针的使用、C++指针操作数组;

变量在创建声明的时候,会指向内存地址吗? 一句话核心 变量在声明、定义的时候,就会分配内存,就有内存地址。变量本身就是「内存地址 + 类型」的别名。 1. 声明 + 定义时发生了什么? int a = 20; 编译器在栈内存 开辟 4 字节 空间 给这块空间一个地址(比如 0x0012FF7C) 把 20 存入这块空间 a 就是这块内存的名字 所以: a 不是数字,a 是一块内存的名字 你写 a,编译器自动去找它对应的地址 你写 &a,就是取这块内存的地址 2. 那引用 int &b = a; 做了什么? int &b = a; b 不新开内存! b 只是 a 的别名 b 和 a 共用同一块内存、同一个地址 所以: a = 20 b = 20 &a == &b 地址完全一样

终极总结(必须背)

  1. 变量声明时就分配内存,就有地址
  2. 变量名 = 内存地址的别名
  3. a→ 取内存里的值
  4. &a→ 取内存的地址
  5. 引用&b不开辟内存,只是别名,和原变量地址完全相同
int *p; p = 0; p 本身有分配内存! p 指向的目标变量,没有分配内存! 1. int *p; 做了什么? 这是定义一个指针变量 p 系统会在栈上给 p 分配 4/8 字节内存(32 位 / 64 位) p 本身有地址:&p 存在 所以:✅ p 这个变量本身 → 有内存 2. p = 0; 做了什么? C/C++ 中,把指针赋值为 0 = 指针不指向任何有效内存= 空指针 NULL p 自己有内存 但 p 里面存的地址是 0 0 是无效地址,没有 int 变量存在这里 所以:❌ p 指向的对象 → 没有内存 1. int *p; 系统在栈上给 p 分配 4/8 字节内存 p 是一个变量,专门用来存「内存地址」 2. p = 0; 把 地址值 0 放进 p 里面 所以:p 指向了地址 0x00000000 但 地址 0 是系统保留的无效地址,不能读写 3. 关键结论 p 本身:有内存,存在 p 里面存的内容:是地址 0 p 确实指向了一个地址(地址 0),但这个地址非法、不能用 一句话标准答案(面试这么答) *int p; p=0; 指针 p 会指向内存地址 0,但地址 0 是无效空地址,没有可用内存。

最简单总结(背这个)

  1. int *p定义时:p 自己一定有内存(栈上)
  2. p=0只是让 p 存地址 0,不指向任何有效内存
  3. 指针分两个东西:
    • 指针本身(p):有内存
    • *指向的目标(p)=*P:此时没有内存

再对比你之前的引用,你瞬间全懂

  • int a;→ a 有内存
  • int &b=a;→ b 无独立内存,是别名
  • int *p;→ p 有内存,*p 不一定有
http://www.jsqmd.com/news/648131/

相关文章:

  • AutoLisp实战:从零到一构建你的第一个绘图工具
  • 2026年质量好的宠物用品铁罐推荐品牌厂家 - 行业平台推荐
  • TG个人发卡机器人系统源码 支持双语言 二次开发版本
  • GPT-6爆表!200万Token+原生多模态,AI编码能力直接起飞!
  • 石榴解 × KnowFlow:一套面向 C 端用户的健康科普 AI 知识库解决方案,如何跑通落地
  • 豆包 Rocky Linux 10.1 环境下 100 道 grep 命令高频面试题 + 详细答案
  • BFF 架构决策与落地实践:从第一性原理到工程取舍
  • **发散创新:基于Go语言的轻量级Web容器实战与性能优化**在现代微服务架构中,**Web容器**不仅是应用运
  • 从翻译到定制:手把手教你用Buildroot 2025.05手册玩转嵌入式Linux BSP开发
  • Lychee开源大模型部署案例:哈工大深圳NLP团队出品的图文检索精排方案
  • 终极指南:如何在资源受限嵌入式系统中高效实现Modbus通信
  • 006、规划模块(三):分层任务网络与自动化规划器
  • 任务管理器怎么打开?【图文讲解】电脑卡死怎么关程序?任务管理器快捷键?电脑结束任务快捷键?6 种超简单方法,电脑卡死一键救急!
  • Java工程师视角:j-langchain 快速上手 Agent
  • 四轴机械臂从仿真到动起来:基于STM32和ROS的MoveIt串口通信保姆级教程
  • Spring Cloud知识点总结
  • 【从零开始学 React | 第九章】Class类组件zustand
  • 中国首部纯 AI 制作院线电影《第一大道》高清资源下载与观影指南
  • Wireshark实战:从TCP三次握手到四次挥手,透视网络通信全貌
  • 2026年工程AI动画框架:USD+知识图谱新标准
  • D2: AI 工具的 ROI 评估框架(附 Excel 模板)
  • GPT-6震撼发布!OpenAI的“土豆”如何颠覆AI界,中国AI又凭什么反超?
  • 【入门C++语法】第3章 输入cin
  • 逆向解析RK3399安卓设备树:从boot.img到可编辑dts的完整指南
  • P10 | 景点管理:分页查询与全文搜索实现
  • Neeshck-Z-lmage_LYX_v2惊艳案例:‘宋代山水画’提示词生成的留白与气韵表达
  • ollama v0.20.7 最新版更新详解:ROCm 7.2.1、Gemma4 渲染修复与多项 Metal/Renderer 回归修补
  • 如何科学构建TVA项目的成功标尺:从KPI设定到价值闭环
  • 如何用AI修复受损音频:VoiceFixer完整指南
  • 抖音批量下载工具完全指南:高效获取去水印视频与图集