C语言指针详解(上)

一.什么是指针

指针是一种类型,用来存储变量的地址的类型

有哪些类型呢

字符指针:char*

整型指针:int*

浮点型指针:float*

双精度浮点型指针:double*

空指针:void*

(每一个类型的指针,都指定存储该类型变量的地址)(void*后面在讲解)

比如说:

int a=0;//创建一个int整型变量
int* p=&a;//创建了一个int*类型的指针变量,可以存储int类型的地址
printf("%p",p)://打印a的地址(打印地址是%p)

我们看别人代码的时候,别人可能是这样写指针变量的:

int a=0;//创建一个int整型变量
int *p=&a;//这种形式

发现这俩总主要是*号在哪,下面这种方式用的人最多,但是原本的写法是上面这种,但是这两种写法都一样,只是形式上的不同

(上面我们对指针有了简单的了解,指针就是存储变量地址的变量)

二.怎样通过地址来访问变量

我们来看这个例子

通过*号来访问地址对应的值,和直接打印变量的值是一样的;

通过地址来改变变量的值也是可以的。

三.指针类型的大小

既然指针存的是地址,那么地址的大小肯定是一样的,我们来看一下(在64位环境下):

果然不出所料,他们的大小都一样,那么,为什么要分这么多呢

四.指针的加减

当我们对指针进行加减的时候,看例子:

int*类型加一,地址增加了4

char*类型加一,地址增加了1

我们又知道int类型大小为4,char类型大小为1

所以我们得知不同类型的指针变量,加减可以跳过不同的距离,加一次可以跳过该类型的字节数

五.数组和指针

我们知道数组在内存中的存储是连续的

我们就用一个p指针来慢慢遍历这个数组,因为数组在内存是连续的,指针加减在内存也是连续

这里有一个小细节,数组名其实就是首元素的地址,所以,我们可以这样操作

未完待续。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/288922.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜维尔科技:【应急演练】【工业仿真】救援模拟演练可视化仿真项目实施

安全救援综合演练系统是一套面向公共安全事故、预案管理、应急救援模拟演练的虚拟仿真解决方案,它为警察、消防以及专门的应急救援保障部门提供一个综合的应急救援培训和仿真演练平台。平台主要通过设计不同的事故模型和特定的灾难场景,定制不同的应急救…

Phoenix伪分布安装

引言 Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫…

大话设计模式之模板方法模式

模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,将特定步骤的实现延迟到子类中。模板方法模式通过在父类中定义算法的骨架,而将具体步骤的实现留给子类来完成,从而使子类…

Python学习之-正则表达式

目录 前言:1.re.serach1.1例子: 2.re.match2.1示例1:2.2 示例2: 3.re.findall3.1 示例 4.re.fullmatch4.1 示例1:4.2 示例2: 5.re.split5.1 示例1:5.2 示例2:5.3 示例3: 6.re.sub6.1 示例&#…

都2024年了,还不知道怎么学习网络安全?来看看吧,很难找全的

前言 最近收到不少关注朋友的私信和留言,大多数都是零基础小友入门网络安全,需要相关资源学习。其实看过的铁粉都知道,之前的文里是有过推荐过的。新来的小友可能不太清楚,这里就系统地叙述一遍。 01.简单了解一下网络安全 说白…

阿里云ubuntu服务器搭建可视化界面

连接终端 最好初始化服务器的时候 不要以root权限创建 否则会出错 1更新软件: sudo apt-get update2安装ubuntu desktop : sudo apt-get install ubuntu-desktop3 配置ubuntu desktop并重启: sudo apt-get -f install sudo dpkg-reconfigure ubuntu-desktop sudo reboot4 su…

QT文件读写操作和内容提取

访问IO设备,需要先调用open()来设置正确的OpenMode(例如ReadOnly或ReadWrite) 打开设备后后,使用write() 或putChar() 写入数据到文件和设备,并通过调用read(),readLine() 或readAll() 进行读取;使用完设备后&#xf…

把本地文件上传到HDFS上操作步骤

因为条件有限,我这里以虚拟机centos为例 实验条件:我在虚拟机上创建了三台节点,部署了hadoop,把笔记本上的数据上传到hdfs中 数据打包上传到虚拟机节点上 采用的是rz命令,可以帮我们上传数据 没有的话可以使用命令安装…

JetBrains全家桶激活,分享 WebStorm 2024 激活的方案

大家好,欢迎来到金榜探云手! WebStorm公司简介 JetBrains 是一家专注于开发工具的软件公司,总部位于捷克。他们以提供强大的集成开发环境(IDE)而闻名,如 IntelliJ IDEA、PyCharm、和 WebStorm等。这些工具…

使用Qt生成图片

Qt之生成png/jpg/bmp格式图片_qt生成图片-CSDN博客 (1)使用QPainter 示例关键代码: QImage image(QSize(this->width(),this->height()),QImage::Format_ARGB32);image.fill("white");QPainter *painter new QPainter(&image);painter->…

PCL点云处理之M估计样本一致性(MSAC)平面拟合(二百三十六)

PCL点云处理之M估计样本一致性(MSAC)平面拟合(二百三十五六) 一、算法介绍二、使用步骤1.代码2.效果一、算法介绍 写论文当然用RANSAC的优化变种算法MSAC啊,RANSAC太土太LOW了哈哈 MSAC算法(M-estimator Sample Consensus)是RANSAC(Random Sample Consensus)的一种…

【计算机网络】启程

📝本文介绍 本文为计算机网路系列的开始篇,会介绍一下使用的书籍和自己做的思维导图。 👋作者简介:一个正在积极探索的本科生 📱联系方式:943641266(QQ) 🚪Github地址:https://githu…

【蓝桥杯省赛真题34】python积木搭建 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

python积木搭建 第十三届蓝桥杯青少年组python比赛省赛真题 一、题目要求 (注:input()输入函数的括号中不允许添加任何信息) 1、编程实现 小蓝和小青在玩积木搭建游戏,具体玩法如下: 小蓝报一个数字N&…

Python 从0开始 一步步基于Django创建项目(12)使用装饰器login_required()限制对页面的访问

本文实现功能: 除‘主页’和‘注册’页之外的所有页面,都只有在用户登录后才能访问。 实施方法:在city_infos的views.py文件中,引入装饰器,并在所有视图函数前应用装饰器。 步骤如下: 1、使用import引入…

阿里云-零基础入门NLP【基于深度学习的文本分类3-BERT】

文章目录 学习过程赛题理解学习目标赛题数据数据标签评测指标解题思路BERT代码 学习过程 20年当时自身功底是比较零基础(会写些基础的Python[三个科学计算包]数据分析),一开始看这块其实挺懵的,不会就去问百度或其他人,当时遇见困难挺害怕的…

android 11 SystemUI 状态栏打开之后的界面层级关系说明之一

比如WiFi 图标的父layout为: Class Name: ButtonRelativeLayout Class Name: QSTileView Class Name: TilePage Class Name: PagedTileLayout Class Name: QSPanel Class Name: NonInterceptingScrollView Class Name: QSContainerImpl Class Name: FrameLayout Cl…

C语言数据结构易错知识点(5)(插入排序、选择排序)

插入排序:直接插入排序、希尔排序 选择排序:直接选择排序、堆排序 上述排序都是需要掌握的,但原理不会讲解,网上有很多详尽地解释,本文章主要分享一下代码实现上应当注意的事项 1.直接插入排序: 代码实…

RK3568驱动指南|第十四篇 单总线-第155章 单总线简介

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

win10休眠功能误删了

背景: 今天用某电脑管家清理C盘,不小心把休眠文件给删了,结果电脑失去了休眠功能。这玩意对我太重要了,我合上盖子就是要电脑休眠带走的。于是开始找办法,终于在官网找到了。并且恢复成功。 话不多说直接上技能&#…

基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告

基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐…