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

C语言指针使用

一、指针基础概念

指针本质上是一个存储内存地址的变量。通过指针,我们可以直接访问和操作内存中的数据。

int var = 10;     // 普通整型变量
int *ptr = &var;  // ptr是指向var的指针

二、指针的常见应用场景

1. 动态内存分配

指针最常见的用途是动态内存管理:

int *arr = (int*)malloc(10 * sizeof(int)); // 分配10个整型空间
if(arr != NULL) {// 使用分配的内存free(arr); // 释放内存
}

2. 函数参数传递

指针可以实现"按引用传递"void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;
}int main() {int x = 5, y = 10;swap(&x, &y); // 交换x和y的值return 0;
}

3. 数组与指针的关系

数组名本质上是指向数组首元素的指针:

int arr[5] = {1,2,3,4,5};
int *p = arr; // 等价于 p = &arr[0]

4. 字符串处理

C语言中字符串通常用字符指针表示:

char *str = "Hello World";
char str2[] = "Hello";

三、指针使用注意事项

  1. 空指针检查 :使用前检查指针是否为NULL
  2. 野指针问题 :指针指向已释放的内存
  3. 内存泄漏 :忘记释放分配的内存
  4. 指针运算 :确保指针运算在合法范围内
int *ptr = NULL;
if(ptr != NULL) {*ptr = 10; // 安全访问
}
http://www.xdnf.cn/news/17741.html

相关文章:

  • Python网络爬虫(二) - 解析静态网页
  • 【ai写代码】lua-判断表是否被修改
  • 分布式事务、锁、链路追踪
  • 地测管理部绩效考核关键指标与地质数据分析
  • 嵌入式 - Linux软件编程:进程
  • C01:内存操作函数
  • Origin绘制正态分布直方图+累积概率图|科研论文图表教程(附数据格式模板)
  • 可信搜索中的多重签名
  • mysql——count(*)、count(1)和count(字段)谁更快?有什么区别?
  • QLab Pro for Mac —— 专业现场音频与多媒体控制软件
  • Unity Shader unity文档学习笔记(十九):粘土效果,任意网格转化成一个球(顶点动画,曲面着色器)
  • 【代码随想录day 20】 力扣 669. 修剪二叉搜索树
  • 【CLR via C#(第3版)阅读笔记】类型基础
  • PostgreSQL——视图
  • 嵌入式C/C++面试大全
  • Gradle(四)Maven 项目迁移 Gradle 项目实践
  • spring mvc HttpMessageConverter 消息转换器
  • 【KALI】第一篇 安装Kali Linux虚拟机之详细操作步骤讲解
  • CNN - 卷积层
  • 利用 Java 爬虫按图搜索 1688 商品(拍立淘)实战指南
  • 高效TypeScript开发:VSCode终极配置指南
  • Varjo XR虚拟现实军用车辆驾驶与操作培训
  • 【MATLAB代码】滑动窗口均值滤波、中值滤波、最小值/最大值滤波对比。订阅专栏后可查看完整代码
  • OpenCV中对图像进行平滑处理的4种方式
  • 《多级缓存架构设计与实现全解析》
  • 【跨越 6G 安全、防御与智能协作:从APT检测到多模态通信再到AI代理语言革命】
  • 机器视觉的磁芯定位贴合应用
  • GraphRAG查询(Query)流程实现原理分析
  • Java+Vue构建的MES信息管理系统,含完整源码,功能涵盖生产跟踪、质量管控等,助力企业实现精细化、智能化生产管理
  • 【16-softmax回归】