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

c语言—指针进阶

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

目录

指针变量不固定!!! 

指针分配内存

空指针不被分配内存!!!

对空指针取地址(危险)

指针一定要有初始值!!!

野指针


指针基础知识:
c语言指针详解icon-default.png?t=N2N8http://www.t.csdn.cn/RZIkZ

指针变量不固定!!! 

操作系统会为程序分配随机不同的内存空间,在不同的内存空间中分配的变量地址也是不同的

指针分配内存

分配内存给指针是指在程序中动态地为指针变量分配一段内存空间,使得指针变量可以指向该内存空间,并且可以通过该指针变量对该内存空间进行读写操作。 

空指针不被分配内存!!!

空指针不会被分配内存,因为空指针本身就是一个指向内存地址为0的指针,没有实际的内存空间。 

对空指针取地址(危险)

对于空指针取地址,每次的结果不一样是因为操作系统将内存空间分配给不同的程序和进程。它会尝试取地址,但是由于没有分配内存给该指针,所以结果是不确定的,因为可能会分配给其他程序或者空闲的内存空间。 

对空指针取地址是非常危险的行为,可能会导致程序崩溃或不可预期的结果。因此,应该避免对空指针取地址。

指针一定要有初始值!!!

指针需要有初始值,因为使用未初始化的指针可能会导致程序崩溃或者出现未定义的行为。在没有为指针分配有效的内存或者确定它指向的地址之前,任何对指针所指对象的访问都是非法的。因此,在使用指针之前,一定要给它赋初值,可以将其初始化为NULL或者一个有效的地址。

野指针

野指针是指未初始化或者已经被释放但没有置为NULL的指针。使用野指针进行访问可能会导致程序崩溃或者出现未定义的行为,因为这些指针指向的内存地址是不确定的或已经被释放,所以无法保证其内容的正确性。为了避免出现野指针问题,我们应该在声明指针变量时,将其初始化为NULL,当指针不再需要时,及时将其置为NULL。在使用指针时,也要确保其指向合法的内存地址。

#include<stdio.h>
int main()
{int* p = NULL;int** p2 = &p;printf("%p\n", p);printf("%p\n", p2);printf("%p\n", &p);return 0;
}

 

 

 

http://www.lryc.cn/news/57864.html

相关文章:

  • 总结二分法
  • 二叉搜索树和AVL树
  • 计算机体系结构量化研究方法【2】高速缓存Cache
  • 初识设计模式 - 迭代器模式
  • 三路快排(基于三指针单趟排序的快速排序)+快排时间复杂度再分析
  • Eyeshot Ultimate 2023 Crack
  • JAVA-8-[SpringBoot]入门程序案例和原理分析
  • 前端工程化
  • 【redis】单线程 VS 多线程(入门)
  • 2023蓝桥杯Java研究生组赛题
  • 多维时序 | MATLAB实现CNN-BiLSTM-Attention多变量时间序列预测
  • 微积分——Rolle定理的理解(罗尔定理)
  • linux内核之select/poll/epoll
  • 文件流下载
  • C语言模拟实现:atoi函数
  • LeetCode.每日一题 2427. 公因子的数目
  • 蓝牙BQB认证 - HFP profile配置说明
  • 【接口测试工具】Eolink Apikit 快速入门教程
  • 使用Python和OpenCV实现实时人脸检测并保存截图
  • [linux kernel]slub内存管理分析(7) MEMCG的影响与绕过
  • MySQL创建数据库(CREATE DATABASE语句)
  • 【JavaWeb】4—Tomcat
  • 宝塔Linux面板部署Python flask项目
  • spring中产生bean的几种方式
  • OD-火星文计算(Python)
  • 【vue3教程】初入了解vue3的基本结构
  • 智慧供水综合运营平台解决方案
  • 文件系统、描述符和缓冲区
  • java微服务商城高并发秒杀项目--009.流控规则和降级规则
  • php编写的脚本,如何才能在windows系统运行呢?