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

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.lryc.cn/news/621429.html

相关文章:

  • Day57--图论--53. 寻宝(卡码网)
  • 使用免费API开发口播数字人
  • 计算机视觉Open-CV
  • 新手入门 Makefile:FPGA 项目实战教程(一)
  • 经典蓝牙(BR/EDR)配对连接全过程:从 HCI 命令到 Profile 交互
  • PHP持久连接与普通连接的区别
  • 上网行为组网方案
  • Linux软件下载菜单脚本
  • 2025 年电赛 C 题 发挥部分 1:多正方形 / 重叠正方形高精度识别与最小边长测量
  • 待办事项小程序开发
  • Multimodal RAG Enhanced Visual Description
  • 容器运行时支持GPU,并使用1panel安装ollama
  • 【嵌入式C语言】四
  • 20道前端性能优化面试题精华
  • python学习DAY41打卡
  • 低配硬件运行智谱GLM-4.5V视觉语言模型推理服务的方法
  • 《WebGL中FBO的底层运行逻辑》
  • 基于ECharts和EdgeOne打造云上智能图表
  • 编排之神-Kubernetes中的微服务介绍及演练
  • (2-10-1)MyBatis的基础与基本使用
  • 大数据项目_基于Python+hadopp的城市空气污染数据关联性可视化分析系统源码_基于机器学习的城市空气污染预测与分析系统的设计与实现
  • C/C++ 进阶:深入解析 GCC:从源码到可执行程序的魔法四步曲
  • 卫星通信链路预算之七:上行载噪比计算
  • 【C#】PNG 和 JPG、JPEG的应用以及三种格式的区别?
  • [系统架构设计师]软件工程基础知识(五)
  • 《量子雷达》第5章 量子雷达发射机 预习2025.8.14
  • “Zen 5”: The AMD High-Performance 4nm x86-64 Microprocessor Core
  • 接口测试用例的编写
  • Avalonia_SukiUI明暗主题切换时部分元素颜色不变
  • vue内置组件