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

c语言速成系列指针上篇

那么这一篇文章带大家学习一下c语言的指针的概念、使用、以及一些注意事项。

指针的概念

指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。

大白话讲解

外卖大家都点过吧,在付款前,app都会先让我们填写收货地址对吧,这个指针呢就好比外卖员,它必须要拥有你所在的地址信息,然后才能将外卖送到你的手上。

即 int*   e = &a;// e得到了a的地址

语法格式

类型*   地址变量名      eg.int*  n;//指针的创建

可能太抽象,别急后面我会举个例子让大家了解指针的使用

在此之前我们先来讲一下指针的运算

指针运算

指针运算一共有三种,我已经给大家放在下面了

指针+-整数

eg.*(p + 1)

代码举例:

# include <stdio.h>
// 指针 +- 整数
int main ()
{
int arr[ 10 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
int *p = &arr[ 0 ];
int i = 0 ;
int sz = sizeof (arr)/ sizeof (arr[ 0 ]);
for (i= 0 ; i<sz; i++)
{
printf ( "%d " , *(p+i)); //p+i 这⾥就是指针 + 整数
}
return 0 ;
}

指针-指针

代码举例:

指针的关系运算

代码举例:

// 指针的关系运算
# include <stdio.h>
int main ()
{
int arr[ 10 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
int *p = &arr[ 0 ];
int i = 0 ;
int sz = sizeof (arr)/ sizeof (arr[ 0 ]);
while (p<arr+sz) // 指针的⼤⼩⽐较
{
printf ( "%d " , *p);
p++;
}
return 0 ;
}
这里就快点带过了,大家自行观看

关于const的介绍

首先我们先来看一段代码,相信看到这篇文章的大多是小白,所以我以文字的方式带大家将代码走一遍。

int main()
{
    int a = 666;//创建变量,并赋值
    int* p = &a;//取出a的地址,并存放在* p 中
    printf("%d ", *p);//根据p提供的地址,将数据进行打印
    return 0;
}

那么带大家走完后,就开始这一部分的内容了。

首先const是修饰指针的,至于它的作用我们一会儿再说,我们先再来看段代码

这是一段编译器已经报错了的代码, 我们可以从图片中看到如第485和第469行以及它的报错,从中我们可以发现*p的值无法修改,而484行的const在星号的左边,468行的const在类型和星号的左边。

那么我们再来看一段代码。

从图中我们可以发现,*p得到的是n的地址,但却输出的不是n的地址

那么从上面两张图中我们可以看到const所在位置不同,使得最后的结果也不同。

或许有小伙伴已经猜出const的大概作用了,那么我们还是来总结一下const的规则

const的规则

位置

以下用c表示const

c   类型*   指针名

类型 c *   指针名 

类型  *   c  指针名

作用

修饰指针

修饰规则

const如果放在*的左边 修饰的是指针指向的内容 ,保证 指针指向的内容不能通过指针来改变
但是指针变量本⾝的内容可变
const如果放在*的右边 ,修饰的是 指针变量本⾝ ,保证了 指针变量的内容不能修改 ,但是 指针指
向的内容,可以通过指针改变

总结

c左值不变,c右名不变(这里的左右以星号为准,这里的名所指的对象名不变)

这里给大家拓展了有点多了,本来是打算直接告诉大家这个口诀以及简单解释口诀,但是我突然感觉还是要让大家自己从这些代码中看到结果以及总结出适合自己的口诀(如果有能力可以不参照我的总结)

野指针的成因以及如何规避野指针

成因                                 解决方法

1.指针未初始化                                       1.初始化指针   eg. int* p = NULL

2.指针越界访问                                       2.不超出访问范围

3.指针指向的空间释放                            3.指针变量不再使⽤时,及时置NULL,指针使⽤之前检                                                                      查,有效性 指针变量不再使⽤时,及时置NULL,指针                                                                      使⽤之前检查有效性

assert函数的作用

assert函数是一个库函数

作用:声明指针不为空

头文件:C语言  ----->   #include<assert.h>

              C++     ----->    #include<cassert>


今天就先给大家讲到这里,喜欢我的小伙伴可以给我点个赞哟!

相关文章:

c语言速成系列指针上篇

那么这一篇文章带大家学习一下c语言的指针的概念、使用、以及一些注意事项。 指针的概念 指针也就是内存地址&#xff0c;指针变量是用来存放内存地址的变量。就像其他变量或常量一样&#xff0c;您必须在使用指针存储其他变量地址之前&#xff0c;对其进行声明。 大白话讲解…...

c++ 里函数选择的优先级:普通函数、模板函数、万能引用,编译器选择哪个执行呢?

看大师写的代码时&#xff0c;除了在类里定义了 copy 构造函数&#xff0c;移动构造函数&#xff0c;还定义了对形参采取万能引用的构造函数&#xff0c;因此有个疑问&#xff0c;这时候的构造函数优先级是什么样的呢&#xff1f;简化逻辑测试一下&#xff0c;如下图&#xff0…...

网鼎杯 2020 玄武组 SSRFMe

复习一下常见的redis主从复制 主要是redis伪服务器的选择和一些小坑点 <?php function check_inner_ip($url) { $match_resultpreg_match(/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/,$url); if (!$match_result) { die(url fomat error); } try { …...

纪念日文章:我的博客技术之路——两年回望

两年前的今天&#xff0c;我怀揣着对技术的热情和对知识的渴望&#xff0c;在CSDN这片技术的沃土上&#xff0c;播下了属于我自己的种子——“技术之路”https://jiubana1.blog.csdn.net/ 这个博客不仅是我个人技术成长的见证&#xff0c;更是我与广大技术爱好者交流、学习的桥…...

course-nlp——6-rnn-english-numbers

本文参考自https://github.com/fastai/course-nlp。 使用 RNN 预测数字的英文单词版本 在上一课中&#xff0c;我们将 RNN 用作语言模型的一部分。今天&#xff0c;我们将深入了解 RNN 是什么以及它们如何工作。我们将使用尝试预测数字的英文单词版本的问题来实现这一点。 让…...

qnx 查看cpu使用

http://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.utilities/topic/h/hogs.html 【QNX】Hogs命令使用总结-CSDN博客 hogs hogs -S c #按照cpu排序 hogs -S m #按照内存排序 hogs -s 2 869113958 查看某一进程 hogs -% 10c 只看cpu超过…...

设备上CCD功能增加(从接线到程序)

今天终于完成了一个上面交给我的一个小项目&#xff0c;给设备增加一个CCD拍照功能&#xff0c;首先先说明一下本次使用基恩士的CCD相机&#xff0c;控制器&#xff0c;还有软件&#xff08;三菱程序与基恩士程序&#xff09;。如果对你有帮助&#xff0c;欢迎评论收藏&#xf…...

QT C++ QTableWidget 表格合并 setSpan 简单例子

这里说的合并指的是单元格&#xff0c;不是表头。span的意思是跨度、宽度、范围。 setSpan函数需要设定行、列、行跨几格&#xff0c;列跨几格。 //函数原型如下 void QTableView::setSpan(int row, i nt column, 、 int rowSpanCount,/*行跨过的格数*/ int columnSpanCount…...

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:医疗健康智能服务

北京天星医疗股份有限公司(简称“天星医疗”)作为国产运动医学的领导者&#xff0c;致力于提供运动医学的整体临床解决方案&#xff0c;公司坐落于北京经济技术开发区。应用于肩关节、膝关节、足/踝关节、髋关节、肘关节、手/腕关节的运动医学设备、植入物和手术器械共计300多个…...

Oracle 误删数据后回滚

使用闪回查询 使用闪回查询&#xff0c;可以回滚到指定时间点的数据&#xff0c;可以通过系统时间(YYYY-MM-DD HH24:MI:SS)或SCN回滚数据。 SQL> select * from tableName as of timestamp(sysdate-1/24); SQL> select * from tableName as of scn(123456); 3、闪回事务或…...

【RAG提升技巧】查询改写HyDE

简介 提高 RAG 推理能力的一个好方法是添加查询理解层 ——在实际查询向量存储之前添加查询转换。以下是四种不同的查询转换&#xff1a; 路由&#xff1a;保留初始查询&#xff0c;同时查明其所属的适当工具子集。然后&#xff0c;将这些工具指定为合适的选项。查询重写&…...

前端面试题日常练-day56 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 1. PHP中的预定义变量$_SERVER用于存储什么类型的数据&#xff1f; a) 用户的输入数据 b) 浏览器发送的请求信息 c) 服务器的配置信息 d) PHP脚本中定义的变量 2. 在PHP中&#xff0c;以下哪个函数…...

【frp】frpc客户端在ubuntu服务器上的配置

FRP简单配置内网穿透 官方仓库 ,说明比较简单 复杂一点要付费加入星球了。 而且frp还支持插件,目前还不清楚具体使用。 幸好,这位大神给出的非常详细 而且客户端与服务端都是部署在ubuntu的: 【frp】服务端配置与systemd启动 进行了frps的简单配置。 局域网内的机器是ubunt…...

构建LangChain应用程序的示例代码:20、使用LangChain的SQLDatabase包装器连接到Databricks运行时并执行查询操作教程

Databricks SQL 数据库连接 概述 这个笔记本介绍了如何使用LangChain的SQLDatabase包装器连接到Databricks运行时和Databricks SQL。 内容分为三个部分&#xff1a;安装和设置、连接到Databricks以及示例。 安装和设置 !pip install databricks-sql-connector # 安装Datab…...

PHP Standards Recommendations(PSR)

以下是 PHP Standards Recommendations&#xff08;PSR&#xff09;的全部内容&#xff1a; PSR-1&#xff1a;基础编码标准&#xff1a;规定了 PHP 代码的基本格式和要求&#xff0c;包括文件的编码、标签的使用、代码的组织等。PSR-2&#xff1a;编码风格指南&#xff1a;是对…...

[word] word2019中制表符的妙用 #媒体#笔记#知识分享

word2019中制表符的妙用 word2019表格功能是非常强大的&#xff0c;很多朋友都认为以前的制表符已经没有什么用途了&#xff0c;其实不然&#xff0c;在一切特殊的场合&#xff0c;word2019制表符还是非常有用的&#xff0c;下面就为大家介绍word2019中制表符的妙用。 步骤1、…...

太阳能航空障碍灯在航空安全发挥什么作用_鼎跃安全

随着我国经济的快速发展&#xff0c;空域已经成为经济发展的重要领域。航空运输、空中旅游、无人机物流、飞行汽车等经济活动为空域经济发展提供了巨大潜力。然而&#xff0c;空域安全作为空域经济发展的关键因素&#xff0c;受到了广泛关注。 随着空域经济活动的多样化和密集…...

NineData云原生智能数据管理平台新功能发布|2024年5月版

重点发布​ 数据库 DevOps - 表分组查询​ 在企业用户规模达到一定程度后&#xff0c;分库分表成为一种常见的数据库架构选择。在这种情况下&#xff0c;查询和维护数据需要高效的解决方案&#xff0c;以避免手动逐一查询、变更和汇总多个分库和分表的繁琐操作。 库分组变更…...

【Android面试八股文】使用equals和==进行比较的区别?

使用equals和==进行比较的区别 这道题想考察什么 ? 在开发中当需要对引用类型和基本数据类型比较时应该怎么做,为什么有区别。 考察的知识点 equals 的实现以及栈和堆的内存管理 考生应该如何回答 在 Java 中,equals() 方法和 == 运算符用于比较对象之间的相等性,但它…...

利用架构挖掘增强云管理

管理当今复杂的云环境比以往任何时候都更加重要。 大多数企业依赖 AWS、Azure、Kubernetes 和 Microsoft Entra ID 等各种平台来支持其运营&#xff0c;但管理这些平台可能会带来重大挑战。 云优化的最大挑战涉及安全性、成本管理和了解云基础设施内错综复杂的相互依赖关系。…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

AWS vs 阿里云:功能、服务与性能对比指南

在云计算领域&#xff0c;Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商&#xff0c;各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5]&#xff0c;我将从功能、服务和性能三个方面进行结构化对比分析&#…...

虚拟机网络不通的问题(这里以win10的问题为主,模式NAT)

当我们网关配置好了&#xff0c;DNS也配置好了&#xff0c;最后在虚拟机里还是无法访问百度的网址。 第一种情况&#xff1a; 我们先考虑一下&#xff0c;网关的IP是否和虚拟机编辑器里的IP一样不&#xff0c;如果不一样需要更改一下&#xff0c;因为我们访问百度需要从物理机…...