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

指针高级(1)

1.指针的运算

2.指针运算有意义的操作和无意义的操作、

#include <stdio.h>
int main()
{//前提条件:保证内存空间是连续的//数组int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//获取0索引的内存地址int* p1 = &arr[0];//通过内存地址(指针P)获取数据printf("%d\n", *p1);printf("%d\n", *(p1 +1));//获取5索引的内存地址int* p2 = &arr[5];//p2 - p1间隔了多少时长printf("%d\n", p2 - p1);printf("%p\n", p1);printf("%p\n", p2);return 0;
}

3.野指针和悬空指针

#include <stdio.h>
int* method();int main()
{//野指针:指针指向的空间未分配int a = 10;int* p1 = &a;printf("%p\n", p1);printf("%d\n", *p1);//p2野指针int* p2 = p1 + 10;printf("%p\n", p2);printf("%d\n", *p2);//悬空指针:指针指向的空间已经分配,但是被释放了int* p3 = method();printf("拖点时间\n");printf("%p\n", p3);printf("%d\n", *p3);return 0;
}
int* method()
{int num = 10;int* p3 = &num;return p3;}

4.void类型的指针

笔记

代码

5.二级指针和多级指针

笔记

程序

#include<stdio.h>
int main()
{//定义变量int a = 10;int b = 20;//定义一级指针int* p = &a;//定义二级指针int** pp = &p;//利用二级指针修改一级指针里面记录的内存地址*pp =&b;//作用2:利用二级指针获取到变量中记录的数据//输出打印printf("%p\n", &a);printf(" % p\n", &b);printf("%p\n", p);printf("%d\n", **pp);//pp表示二级的//➕一个*表示解一下,获取一级里面所记录的内存地址//再➕一个*表示通过一级指针里面所记录的内存地址,再去获取到变量里面的数据return 0;
}
http://www.xdnf.cn/news/19822.html

相关文章:

  • leetcode 38 外观数列
  • 线程通信机制
  • 【程序人生】有梦想就能了不起,就怕你没梦想
  • BurpSuite_Pro_V2024.6使用教程-Burp Suite代理设置详解
  • (Me)Adobe Media Encoder 2025音视频格式转码软件及视频编码软件,全新版免激活,安装即永久使用!
  • HTTP协议——理解相关概念、模拟实现浏览器访问自定义服务器
  • 优化程序性能 | 《深入理解计算机系统》第五章笔记
  • React实现列表拖拽排序
  • LiteFlow:国产流程编排引擎体验
  • DAY20-新世纪DL(DeepLearning/深度学习)战士:终(目标检测/YOLO)3
  • 【医疗行业案例】基于 React 的预约系统:DHTMLX 助力高效排班与预约管理
  • CAD/BIM软件产品技术深度分析文章写作计划
  • 全渠道 + 低代码:如何打造 “内外协同” 的客服管理系统体系?
  • 【FastDDS】Layer DDS之Domain ( 02-DomainParticipant )
  • unity中的交互控制脚本
  • 云手机将要面临的挑战有哪些?
  • 【学习记录】github私人仓库创建和本地克隆
  • CSS 伪类与伪元素:深度解析
  • 从零构建Linux Shell解释器深入理解Bash进程创建机制
  • 【Spring Cloud微服务】11.微服务通信演义:从飞鸽传书到5G全息,一部消息中间件的进化史诗
  • Java项目打包成EXE全攻略​
  • Ubuntu22.04下编译googletest源代码生成.so动态库
  • 利用 openssl api 实现 TLS 双向认证
  • MySQL-MVCC多版本并发控制详解
  • LangChain实战(十二):自定义Tools扩展Agent能力
  • Python+DRVT 从外部调用 Revit:批量创建门
  • Streamable HTTP
  • sv中forever如何结束
  • AI 在金融、医疗、教育、制造业等领域有着广泛的应用,以下是这些领域的一些落地案例
  • STM32HAL 快速入门(十七):UART 硬件结构 —— 从寄存器到数据收发流程