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

C++指针基础使用

指针的基本概念

指针是C++中一种特殊的变量,用于存储内存地址。通过指针可以直接访问和操作内存中的数据,提高程序的灵活性和效率。

声明和初始化指针

指针的声明需要指定所指向的数据类型,并使用*符号。初始化时可以将其指向一个变量的地址。

int num = 10; int *ptr = # // ptr指向num的地址

指针的解引用

通过*操作符可以访问指针所指向的值。

int value = *ptr; // value现在等于10

指针的算术运算

指针支持加减运算,移动的步长取决于所指向的数据类型大小。

int arr[3] = {1, 2, 3}; int *ptr = arr; // 指向数组首元素 ptr++; // 现在指向arr[1]

指针与数组

数组名本身是一个指向数组首元素的指针。

int arr[3] = {10, 20, 30}; int *ptr = arr; // 等同于ptr = &arr[0]

动态内存分配

使用newdelete操作符可以动态分配和释放内存。

int *ptr = new int; // 动态分配一个int *ptr = 5; delete ptr; // 释放内存 int *arr = new int[10]; // 动态分配数组 delete[] arr; // 释放数组内存

指针与函数

指针可以作为函数参数,实现传址调用。

void increment(int *p) { (*p)++; } int num = 5; increment(&num); // num变为6

指针的安全问题

未初始化的指针或悬垂指针可能导致程序崩溃或未定义行为。

int *ptr; // 未初始化,危险 *ptr = 10; // 未定义行为

智能指针

C++11引入了智能指针(如std::unique_ptrstd::shared_ptr),自动管理内存生命周期。

#include <memory> std::unique_ptr<int> ptr = std::make_unique<int>(10);

指针与多级间接

可以使用指向指针的指针实现多级间接访问。

int num = 10; int *ptr = # int **pptr = &ptr; // 指向指针的指针
http://www.jsqmd.com/news/746895/

相关文章:

  • 企业级应用如何通过多模型聚合避免单点故障
  • 从水稻田到云大屏:一个Java工程师用6周交付省级农业物联网平台的完整路径图(含GitHub私有仓库结构)
  • 半导体设备通信入门:从RS-232到TCP/IP,手把手拆解SECS/GEM协议栈
  • 在上海给孩子找少儿英语机构,怎么才能挑到真正专业靠谱的那家 - 品牌企业推荐师(官方)
  • 利用快马平台快速构建AI模型对比测试原型,加速技术选型
  • Betaflight Configurator终极指南:3分钟快速上手无人机配置工具
  • 如何在Windows电脑上直接安装安卓应用?APK-Installer极简指南
  • Legacy iOS Kit终极指南:旧款iOS设备降级、越狱与系统恢复完整解决方案
  • 低查重不是梦!AI写教材工具助力,2天完成30万字教材编写!
  • ai辅助开发:利用快马平台智能分析与优化yolov8网络结构图
  • 别再死记硬背Mask RCNN结构了!用PyTorch手撸一遍,从RPN到ROIAlign全搞懂
  • 别再死记硬背功能表!深入理解74HC161/390计数器:从芯片手册到级联设计的避坑指南
  • AI生成教材新选择:低查重AI写教材,高效又省心!
  • CATIA新手必看:解决零件变暗、命令不连续等12个高频‘卡点’的保姆级教程
  • 【数据分析】用于Bethe变分问题(BVP)和量子Bethe变分问题(QBVP)的Bregman ADMM的MATLAB实现
  • 想发EI会议论文?手把手教你从投稿到检索的完整流程(以ICAM 2024为例)
  • 如何在macOS上获得完美歌词体验?LyricsX让你听歌更有沉浸感
  • 常州做集成房屋的厂家 - 品牌企业推荐师(官方)
  • 多模态生物基础模型技术架构
  • 新手福音:绕过pycharm激活难题,在快马平台开启你的python第一行代码
  • C++ 仿函数(Functor)深度解析:从基础到应用
  • 构建智能客服原型时如何灵活选用Taotoken平台上的对话模型
  • 告别陀螺仪:用三台高速相机和DIC技术,5分钟搞定船模六自由度运动姿态测量
  • 2026北京婚纱摄影工作室风格横向测评 - 品牌企业推荐师(官方)
  • 效率倍增:利用快马平台调用Gemini一键生成前端开发常用工具函数集
  • Sentinel-1 卫星的轨道数据说明
  • 【机翼】基于奇异值分解重建机翼上的流体流动附matlab代码
  • AUTOSAR网络管理参数配置避坑指南:T_NM_MessageCycle、N_ImmediateNM_TIMES这些值到底怎么设?
  • ai辅助开发深度解析:用快马平台剖析claude code的ai内核
  • 在VScode中使用Claude Code agent并配置模型(仅mac电脑实际操作,windows电脑未实际操作如有问题可留言)