C语言之初阶指针
一、指针:
其实按照我的理解,当我们写c语言程序的时候,创建的变量,数组等都要在内存上开辟空间。而每一个内存都有一个唯一的编号,这个编号也被称为地址编号,就相当于,编号==地址==指针。
二、指针和指针类型:
1:举个例子,int * p; 其中*说明p是指针变量 int就是p所指向对象的类型,p解引用的时候访问的对象大小是sizeof(type),
结论:指针类型可以决定指针解引用的时候访问多少字节(指针的权限)


三、野指针
概念:野指针就是指针指向的位置是不可知的(随机的,不正确的,没有明确限制的)指针变量在定义时,如果未初始化,其值是随机的,指针变量的值是别的变量的地址,意味着指针指向了一个地址是不确定的变量,此时去解引用就是去访问了一个不确定的地址,所以结果是不可能的。
形成的原因有多种:
1.越界访问

2、指针未初始化:
即int*p;
3、指针随便指向地址
4、指针指向的空间释放

四、如何规避野指针
1.指针初始化
2.小心指针越界
3.指针指向空间释放,及时放置NULL(避免返回局部变量的地址)
4.指针使用之前检查有效性
注意:NULL是0,0作为地址,地址用户程序不能访问
当不明确指向或不知道初始化为什么值,最好初始化为NULL
五、指针运算
1、指针+-整数
前面我们说过指针就是地址,而数组名又是数组首元素的地址,那么我们可以通过指针来访问数组,


2、指针-指针
前提:两个指针指向同一块空间,
结论:两个指针相减得到的绝对值就是指针与指针之间的个数


3.模拟实现strlen的功能,


4、二级指针
概念:指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?这就是二级指针。
二级指针变量是存放一级指针变量的地址的。

其中核心的本质就是:*pp通过对pp中的地址进行解引用,这样找到的是p,pp其实访问的是p
**pp先通过*pp找到p,然后对p进行解引用操作,*p,那就找到了a
*pp→p *p→a **pp→a


5、指针与数组
辨析:指针就是指针,指针变量就是一个变量,存放地址,指针变量的大小是4/8
数组就是数组,可以存放一组类型相同的元素,数组的大小是取决于元素的类型和个数
二者联系:数组的数组名是数组首元素的地址,地址是可以访问指针变量中。
另外要明白当用sizeof(数组名)的时候,计算的是整个数组的大小,当&数组名的时候,取出的是数组的地址,数组首元素的地址是一致的。


值得一提的是:p是一个指针变量可以++/--等操作。
arr是数组名,数组首元素地址,不可以这样操作。
6、指针数组
指针数组是指针还是数组?
必然是数组。你但看运算符的优先顺序就知道。
例如: char* arr[5];//存放字符指针的数组 double* arr2[4];//存放字符指针的数组
通过指针数组可以模拟二维数组


相关文章:
C语言之初阶指针
一、指针: 其实按照我的理解,当我们写c语言程序的时候,创建的变量,数组等都要在内存上开辟空间。而每一个内存都有一个唯一的编号,这个编号也被称为地址编号,就相当于,编号地址指针。 二、指针…...
MongoDB基础知识~
引入MongoDB: 在面对高并发,高效率存储和访问,高扩展性和高可用性等的需求下,我们之前所学习过的关系型数据库(MySql,sql server…)显得有点力不从心,而这些需求在我们的生活中也是随处可见的,例如在社交中…...
41. 缺失的第一个正数
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3示例 2: 输入:nums [3…...
数据结构—数组栈的实现
前言:各位小伙伴们我们前面已经学习了带头双向循环链表,数据结构中还有一些特殊的线性表,如栈和队列,那么我们今天就来实现数组栈。 目录: 一、 栈的概念 二、 栈的实现 三、 代码测试 栈的概念: 栈的概念…...
AI大模型低成本快速定制秘诀:RAG和向量数据库
文章目录 1. 前言2. RAG和向量数据库3. 论坛日程4. 购票方式 1. 前言 当今人工智能领域,最受关注的毋庸置疑是大模型。然而,高昂的训练成本、漫长的训练时间等都成为了制约大多数企业入局大模型的关键瓶颈。 这种背景下,向量数据库凭借其独特…...
Please No More Sigma(构造矩阵)
Please No More Sigma 给f(n)定义如下: f(n)1 n1,2; f(n)f(n-1)f(n-2) n>2; 给定n,求下式模1e97后的值 Input 第一行一个数字T,表示样例数 以下有T行,每行一个数,表示n。 保证T<100,n<100000…...
HTML设置标签栏的图标
添加此图标最简单的方法无需修改内容,只需按以下步骤操作即可: 1.准备一个 ico 格式的图标 2.将该图标命名为 favicon.ico 3.将图标文件置于index.html同级目录即可 为什么我的没有变化? 答曰:ShiftF5强制刷新一下网页就行了...
4.CentOS7安装MySQL5.7
CentOS7安装MySQL5.7 2023-11-13 小柴你能看到嘛 哔哩哔哩视频地址 https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source9ba3044ce322000939a31117d762b441 一.解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz1.在/usr/local解压 tar -xvf mysql-5.7.44-…...
【华为OD题库-014】告警抑制-Java
题目 告警抑制,是指高优先级告警抑制低优先级告警的规则。高优先级告警产生后,低优先级告警不再产生。请根据原始告警列表和告警抑制关系,给出实际产生的告警列表。不会出现循环抑制的情况。告警不会传递,比如A->B.B->C&…...
高频SQL50题(基础题)-5
文章目录 主要内容一.SQL练习题1.602-好友申请:谁有最多的好友代码如下(示例): 2.585-2016年的投资代码如下(示例): 3.185-部门工资前三高的所有员工代码如下(示例): 4.1667-修复表中的名字代码…...
Spring IoC DI 使⽤
关于 IoC 的含义,推荐看IoC含义介绍(Spring的核心思想) 喜欢 Java 的推荐点一个免费的关注,主页有更多 Java 内容 前言 通过上述的博客我们知道了 IoC 的含义,既然 Spring 是⼀个 IoC(控制反转)…...
Zigbee智能家居方案设计
背景 目前智能家居物联网中最流行的三种通信协议,Zigbee、WiFi以及BLE(蓝牙)。这三种协议各有各的优势和劣势。本方案基于CC2530芯片来设计,CC2530是TI的Zigbee芯片。 网关使用了ESP8266CC2530。 硬件实物 节点板子上带有继电器…...
机器视觉目标检测 - opencv 深度学习 计算机竞赛
文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 ǵ…...
无监督学习的集成方法:相似性矩阵的聚类
在机器学习中,术语Ensemble指的是并行组合多个模型,这个想法是利用群体的智慧,在给出的最终答案上形成更好的共识。 这种类型的方法已经在监督学习领域得到了广泛的研究和应用,特别是在分类问题上,像RandomForest这样…...
16. 机器学习——决策树
机器学习面试题汇总与解析——决策树 本章讲解知识点 什么是决策树决策树原理决策树优缺点决策树的剪枝决策树的改进型本专栏适合于Python已经入门的学生或人士,有一定的编程基础。 本专栏适合于算法工程师、机器学习、图像处理求职的学生或人士。 本专栏针对面试题答案进行了…...
DevOps系列---【jenkinsfile使用sshpass发送到另一台服务器】
1.首先在宿主机安装sshpass 2.把物理机的sshpass复制到容器中 which sshpass cp $(which sshpass) /usr/local/app/ docker cp sshpass 容器id:/usr/local/bin/sshpass 3.在jenkinsfile中添加 #在stages中添加stage stage(部署TEST服务){steps{sh "sshpass -p root1234 sc…...
Docker 和 Kubernetes:技术相同和不同之处
Docker和Kubernetes是当今最流行的容器化技术解决方案。本文将探讨Docker和Kubernetes的技术相似之处和不同之处,以帮助读者更好地理解这两种技术。 Docker和Kubernetes:当今最流行的容器化技术解决方案 在当今的IT领域,Docker和Kubernetes无…...
通信世界扫盲基础二(原理部分)
上次我们刚学习了关于通信4/G的组成和一些通识,今天我们来更深层次了解一些原理以及一些新的基础~ 目录 专业名词 LTE(4G系统) EPC s1 E-UTRAN UE UU X2 eNodeB NR(5G系统) NGC/5GC NG NG-RAN Xn gNodeB N26接口 手机的两种状态 空闲态 连接态 …...
手机厂商参与“百模大战”,vivo发布蓝心大模型
在2023 vivo开发者大会上,vivo发布自研通用大模型矩阵——蓝心大模型,其中包含十亿、百亿、千亿三个参数量级的5款自研大模型,其中,10亿量级模型是主要面向端侧场景打造的专业文本大模型,具备本地化的文本总结、摘要等…...
【微软技术栈】C#.NET 中的泛型
本文内容 定义和使用泛型泛型的利与弊类库和语言支持嵌套类型和泛型 借助泛型,你可以根据要处理的精确数据类型定制方法、类、结构或接口。 例如,不使用允许键和值为任意类型的 Hashtable 类,而使用 Dictionary<TKey,TValue> 泛型类并…...
PyTorch 2.8镜像参数详解:CUDA 12.4驱动550.90.07环境兼容性避坑指南
PyTorch 2.8镜像参数详解:CUDA 12.4驱动550.90.07环境兼容性避坑指南 1. 镜像核心配置解析 PyTorch 2.8深度学习镜像是一个经过深度优化的通用计算环境,专为现代AI工作负载设计。这个镜像最显著的特点是完整适配NVIDIA最新计算架构,基于RTX…...
深圳SEO公司为什么要定期优化网站
深圳SEO公司为什么要定期优化网站 在当今数字化时代,拥有一个优秀的网站已经不再足以满足企业的需求。随着互联网市场的竞争日益激烈,深圳SEO公司认识到定期优化网站的重要性,并将其作为持续提升网站流量和业务发展的核心策略之一。为什么深…...
Elsevier Tracker终极指南:3分钟搞定学术论文审稿状态追踪
Elsevier Tracker终极指南:3分钟搞定学术论文审稿状态追踪 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 还在为Elsevier期刊审稿进度而焦虑吗?每天刷新页面、等待邮件通知的日子终于可以结…...
SEO_如何制定有效的SEO策略?分步指南(132 )
如何制定有效的SEO策略?分步指南 在互联网时代,一个网站的成功往往取决于其在搜索引擎上的排名。制定有效的SEO策略是提升网站流量、吸引潜在客户的关键。本文将为你提供一份详细的分步指南,帮助你制定并实施有效的SEO策略。 第一步&#x…...
忍者像素绘卷镜像免配置:内置Prompt语法校验器防无效输入机制
忍者像素绘卷镜像免配置:内置Prompt语法校验器防无效输入机制 1. 产品概述 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,专为像素艺术创作而设计。它融合了16-Bit复古游戏美学与现代AI图像生成技术,为用户提供了一个直观…...
科哥二次开发AWPortrait-Z体验:批量生成人像,效率提升300%
科哥二次开发AWPortrait-Z体验:批量生成人像,效率提升300% 1. 为什么选择AWPortrait-Z进行人像生成? 在当今内容创作领域,高质量人像需求呈现爆发式增长。从电商产品展示到社交媒体内容,专业级人像已经成为刚需。然而…...
有了这个Python备忘录,代码拿来即用
这段时间代码写的少了,周末用python写一个小爬虫,却发现连线程的一些方法都不记得了,还得百度查教程。工作越忙,记性越差,发现我疏远了代码,代码也疏远了我。 PS:对于小白来说自学也不是件容易…...
ReactNative项目OpenHarmony三方库集成实战:react-native-render-html
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 项目基于 RN 0.72.90 开发 📋 前言 在移动应用开发中,HTML 内容渲染是一项常见需求,特别是在新闻资讯、富文本编辑、邮件展示等场景中。React Native 原…...
电力系统稳定器与静态无功补偿器联合提升暂态稳定性Simulink仿真模型研究
使用电力系统稳定器(PSS)和静态无功补偿器(SVC)提高暂态稳定性的simulink仿真模型电力系统这玩意儿最怕的就是突然来个大扰动,比如短路故障或者大负荷切换。这时候发电机的功角曲线要是收不住,分分钟全网停…...
头皮上也长痘痘,一梳头就碰到好痛怎么办?
很多人都有过头皮长痘的困扰,一梳头碰到就痛,别提多难受了。其实,头皮长痘和我们的健康息息相关,下面就来详细说说其中的原因和解决办法。痘痘成因大揭秘清洁不到位头皮和脸部皮肤一样,会分泌油脂。如果平时洗头不勤&a…...
