当前位置: 首页 > 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)。
  • 动态内存分配后必须释放,防止内存泄漏。
  • 指针类型需严格匹配,否则可能导致未定义行为。

相关文章:

  • 【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容器互联
  • 杭州有哪些做网站的公司好/桌面百度
  • 做网站有哪个软件好/企业优化推广
  • 做网站需要做哪些东西/宁波seo链接优化
  • 重庆制作网站速成班/网站收录
  • 做一个购物网站需要多久/360推广开户
  • 口味王网站建设可行分析表/互联网推广平台有哪些公司