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

基于算法竞赛的c++编程(25)指针简单介绍和简单应用

指针的基本概念

指针是一种变量,用于存储另一个变量的内存地址。通过指针可以直接访问或修改内存中的数据,提供灵活的内存管理手段。在C++中,指针的类型必须与其指向的数据类型一致。

int var = 10;      // 定义一个整型变量
int *ptr = &var;   // 定义一个指针,指向var的地址

指针的声明与初始化

声明指针时需在变量名前添加*,初始化时使用&获取变量的地址。未初始化的指针称为野指针,可能引发程序崩溃。

double value = 3.14;
double *dPtr = &value; // 正确初始化
int *uninitPtr;        // 未初始化,危险!

指针的解引用

通过*操作符访问指针指向的内存数据。解引用时需确保指针已指向有效内存。

cout << *ptr;   // 输出10(var的值)
*dPtr = 9.99;   // 修改value的值为9.99

指针的简单应用:动态内存分配

使用newdelete操作符动态分配和释放内存,适用于运行时确定大小的场景。

int *arr = new int[5]; // 动态分配5个整型空间
arr[0] = 1;            // 操作动态数组
delete[] arr;          // 释放内存

指针与数组的关系

数组名可视为指向首元素的指针。指针算术可用于遍历数组。

int nums[3] = {1, 2, 3};
int *p = nums;        // p指向nums[0]
cout << *(p + 1);     // 输出nums[1]的值2

指针作为函数参数

通过指针传递参数可实现函数内修改外部变量(按引用传递的效果)。

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

注意事项

  • 避免空指针解引用(使用前检查是否为nullptr)。
  • 动态内存分配后必须释放,防止内存泄漏。
  • 指针类型需严格匹配,否则可能导致未定义行为。
http://www.dtcms.com/a/241288.html

相关文章:

  • 【Vue】scoped+组件通信+props校验
  • DingDing机器人群消息推送
  • 二维FDTD算法仿真
  • JVM如何优化
  • Qt学习及使用_第1部分_认识Qt---Qt开发基本流程
  • AirPosture | 通过 AirPods 矫正坐姿
  • while/do while/for循环几个小细节
  • 免费数学几何作图web平台
  • React中子传父组件通信操作指南
  • JavaScript的ArrayBuffer与C++的malloc():两种内存管理方式的深度对比
  • Linux进程信号(一)
  • LLMs 系列实操科普(2)
  • Spring Boot面试题精选汇总
  • 如何做好一份技术文档?从规划到实践的完整指南
  • React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
  • ubuntu22.04 安装docker 和docker-compose
  • 安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
  • 在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
  • 【自动控制原理】分析和设计控制系统的性能(*^▽^*)
  • docker容器互联
  • Spring事务传播机制有哪些?
  • AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月9日第103弹
  • STM32---外部32.768K晶振(LSE)无法起振问题
  • 前端绘制道路鱼骨图
  • AI-Python机器学习与深度学习实践技术应用
  • 2025年css+html面试题
  • mybatisX的使用,简化springboot的开发,不用再写entity、mapper以及service了!
  • deepbayes lecture1: 贝叶斯框架简介
  • 计算机系统结构复习-名词解释2
  • RT_Thread——线程管理(上)