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

指针(3)

        C语言昂,指针昂,最喜欢的一集,小时候学这一课我直接取地址了。上一篇博客给大家讲解了不同类型的指针变量的大小,今天来给大家讲解一下根据其所产生的一些性质。(往期回顾:指针(2)-CSDN博客)

        根据上一篇博客的意思:既然不同类型的指针变量的大小都是一样的,那么为什么我们还要区分指针的类型呢?为什么不直接用一种通用类型的指针来涵盖所有的指针呢?这种想法其实我也有过,就像秦始皇统一度量衡一样,假如有个统一的指针类型,那么我们用(学)指针不也很方便易懂了吗?但经过后面的学习发现,事情没有想象得这么的简单,听我娓娓道来:

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

        我们来看这个代码,我们将a初始化为10,然后用p这个指针来存储a的地址,然后我们打印出p来看看(其实打印的就是a的地址。)

        我们可以看到用inr来当作指针的类型,然后打印出的p是这样的,接下来我们将其+1

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{int a = 10;int* p = &a;printf("%p\n", p );printf("%p\n", p+1);return 0;
}

        我们发现p的值(a的地址+了4个字节),而这4个字节就是int类型所占的空间,所以说我们推断在不同类型的指针进行计算的时候,运算的是它类型的大小,假如说int类型的指针进行+1运算,实际上是+了4个字节;但用double类型的指针进行+1,就会+8个字节……这是我们的猜想,让我们来用代码进行实现,验证一下这个猜想: 

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{double a = 10;double* p = &a;printf("%p\n", p);printf("%p\n", p+1);return 0;
}

 

        因为是16进制表示的地址,所以说我们对double指针+1 ,实际上是+了8个字节的;让我们来试试char类型呢?

        正好,char类型的指针+了1个字节,这和我们的猜想一样——这就说明了当我们对指针进行运算时,加减的是指针类型的大小。这也就侧面说明了为什么不能统一指针类型,当我们指针的运算有了一定的了解之后,我们可以为指针与数组的结合又埋下伏笔了。 

相关文章:

指针(3)

C语言昂&#xff0c;指针昂&#xff0c;最喜欢的一集&#xff0c;小时候学这一课我直接取地址了。上一篇博客给大家讲解了不同类型的指针变量的大小&#xff0c;今天来给大家讲解一下根据其所产生的一些性质。&#xff08;往期回顾&#xff1a;指针&#xff08;2&#xff09;-C…...

外汇天眼:我碰到外汇投资骗局了吗?学会这5招,轻松识别外汇诈骗黑平台!

近年来外汇市场因为交易量大、流动性大、不容易被控盘、品种简单、风险相对低等特色&#xff0c;因此吸引不少投资人青睐&#xff0c;成为全球金融市场的热门选择。 然而&#xff0c;市面上充斥许多诈骗集团设立的黑平台&#xff0c;也打着投资外汇的名义行骗&#xff0c;不免会…...

一文解析子网掩码和默认网关,成为网络设置达人

随着互联网的普及&#xff0c;越来越多的人开始接触并使用电脑和网络。然而&#xff0c;对于很多初学者来说&#xff0c;网络设置中的子网掩码和默认网关是两个相对陌生的概念。今天&#xff0c;我们就来深入解析这两个概念&#xff0c;让你轻松掌握网络设置技巧&#xff01; …...

二分查找法详解(6种变形)

前言 在之前的博客中&#xff0c;我给大家介绍了最基础的二分查找法&#xff08;没学的话点我点我&#xff01;&#xff09; 今天我将带大家学习二分法的六种变形如何使用&#xff0c;小伙伴们&#xff0c;快来开始今天的学习吧&#xff01; 文章目录 1&#xff0c;查找第一个…...

uniapp uview 页面多个select组件回显处理,默认选中

<view class"add-item column space-around" click"selectClick(1)"><text class"w-s-color-3 f-28">商品分类</text><view class"w-100 space-between"><!-- 第一个参数为你的单选数组&#xff0c;第二个…...

linux中playbook的控制语句

本章主要介绍 playbook中的控制语句。 使用 when 判断语句 block-rescue判断 循环语句 一个play中可以包含多个task&#xff0c;如果不想所有的task全部执行&#xff0c;可以设置只有满足某个 条件才执行这个task&#xff0c;不满足条件则不执行此task。本章主要讲解when 和 …...

MongoDB介绍

一、MongoDB介绍 1.1 mongoDB介绍 MongoDB 是由C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB …...

再看参数校验

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 写一个接口&#xff0c…...

计算机存储术语: 扇区,磁盘块,页

扇区(sector) 硬盘的读写以扇区为基本单位。磁盘上的每个磁道被等分为若干个弧段&#xff0c;这些弧段称之为扇区。硬盘的物理读写以扇区为基本单位。通常情况下每个扇区的大小是 512 字节。linux 下可以使用 fdisk -l 了解扇区大小&#xff1a; $ sudo /sbin/fdisk -l Disk …...

解决IDEA编译/启动报错:Abnormal build process termination

报错信息 报错信息如下&#xff1a; Abnormal build process termination: "D:\Software\Java\jdk\bin\java" -Xmx3048m -Djava.awt.headlesstrue -Djava.endorsed.dirs\"\" -Djdt.compiler.useSingleThreadtrue -Dpreload.project.path………………很纳…...

Jetpack DataStore

文章目录 Jetpack DataStore概述DataStore 对比 SP添加依赖库Preferences DataStore路径创建 Preferences DataStore获取数据保存数据修改数据删除数据清除全部数据 Proto DataStore配置AndroidStudio安装插件配置proto文件创建序列化器 创建 Proto DataStore获取数据保存数据修…...

在Portainer创建Nginx容器并部署Web静态站点实现公网访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;…...

泛微e-cology XmlRpcServlet文件读取漏洞复现

漏洞介绍 泛微新一代移动办公平台e-cology不仅组织提供了一体化的协同工作平台,将组织事务逐渐实现全程电子化,改变传统纸质文件、实体签章的方式。泛微OA E-Cology 平台XmRpcServlet接口处存在任意文件读取漏洞&#xff0c;攻击者可通过该漏洞读取系统重要文件 (如数据库配置…...

当下流行的直播技术demo演示

nginx-http-flv-module&#xff08;更新不是很频繁&#xff09; SRS: https://ossrs.net/lts/zh-cn/&#xff08;独立官网&#xff0c;目前最新稳定版version5&#xff09; 基于SRS搭建直播demo演示&#xff1a; 一、搭建流媒体服务器 参见官网&#xff1a;https://ossrs.ne…...

Zabbix自动发现并注册已安装agent的主机

先在被监控主机上安装好zabbix-agent 然后登录zabbix网页 点击发现动作后会出现第三步 然后编辑操作&#xff0c;发现后加入到主机组群 然后编辑发现规则 然后就可以在主机列表中看到被发现的主机。...

Jtti:linux搭建开源ldap服务器的方法

搭建开源LDAP服务器是一种用于集中管理用户身份认证和授权信息的方法。在Linux系统上&#xff0c;OpenLDAP是一个流行的开源LDAP实现&#xff0c;可以用于搭建LDAP服务器。以下是搭建OpenLDAP服务器的基本步骤&#xff1a; 步骤一&#xff1a;安装OpenLDAP 安装OpenLDAP软件包&…...

Gazebo GUI模型编辑器

模型编辑器 现在我们将构建我们的简单机器人。我们将制作一个轮式车辆&#xff0c;并添加一个传感器&#xff0c;使我们能够让机器人跟随一个斑点&#xff08;人&#xff09;。 模型编辑器允许我们直接在图形用户界面 &#xff08;GUI&#xff09; 中构建简单的模型。对于更复…...

pycharm运行正常,但命令行执行提示module不存在的多种解决方式

问题描述 在执行某个测试模块时出现提示&#xff0c;显示自定义模块data不存在&#xff0c;但是在PyCharm下运行正常。错误信息如下&#xff1a; Traceback (most recent call last):File "/run/channelnterface-autocase/testcases/test_chanel_detail.py", line 2…...

GBASE南大通用GBase 8a ODBC的安装文件

GBASE南大通用GBase 8a ODBC 体系结构是基于五个组件&#xff0c;在下图中所示&#xff1a; GBase 8a ODBC 体系结构图  应用 应用是通过调用 ODBC API 实现对 GBase 数据访问的程序。应用使用标准的 ODBC 调用与驱动程序管理器通信。应用并不关心数据存储在哪里&#xff…...

重新配置torch1.8 cuda11.1 torchtext0.9.0虚拟Pytorch开发环境

这里写目录标题 起因发现选择安装cuda 11.1核对下自己的显卡是否支持下载该版本的CUDACUDA下载地址CUDA安装过程 在anaconda中创建一个虚拟环境1.以下是环境的配置过程2.查看虚拟环境列表3.激活虚拟环境 安装torch和torchtext包的过程1.输入下面这句代码&#xff0c;就可以直接…...

C++ 条件变量 condition_variable

<condition_variable> 是 C 标准库中用于多线程同步的核心头文件。它主要提供了条件变量&#xff08;Condition Variable&#xff09;机制&#xff0c;用来协调多个线程的执行顺序。 简单来说&#xff0c;它的作用就是让一个或多个线程在特定条件不满足时进入休眠&#x…...

百度网盘群晖套件终极指南:3步实现NAS云存储完美整合

百度网盘群晖套件终极指南&#xff1a;3步实现NAS云存储完美整合 【免费下载链接】synology-baiduNetdisk-package 项目地址: https://gitcode.com/gh_mirrors/sy/synology-baiduNetdisk-package 想在群晖NAS上直接管理百度网盘文件&#xff1f;这个开源套件让你轻松实…...

法律条款时间逻辑的DSL与状态机实现:从概念到工程实践

1. 项目概述&#xff1a;当法律条款遇上时间逻辑最近在做一个挺有意思的项目&#xff0c;叫“Clause-Logic/exoclaw-temporal”。光看名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你接触过合同、协议或者任何带有法律效力的文书&#xff0c;并且尝试过用代码去处理它…...

WordPress全栈性能优化实战:从服务器到前端的加速指南

1. 项目概述与核心价值最近在折腾一个WordPress站点&#xff0c;发现随着内容增多、插件堆叠&#xff0c;前台加载速度越来越慢&#xff0c;尤其是TTFB&#xff08;首字节时间&#xff09;和LCP&#xff08;最大内容绘制&#xff09;指标&#xff0c;简直让人抓狂。相信很多站长…...

NotebookLM实战指南(NLP任务辅助黄金公式首次公开)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM实战指南&#xff08;NLP任务辅助黄金公式首次公开&#xff09; NotebookLM 是 Google 推出的基于可信来源驱动的 AI 助手&#xff0c;专为研究者与工程师设计&#xff0c;其核心能力在于“…...

STATA CLI:我把 Stata 接进了命令行,也接进了 AI 工作流

为什么要做这个工具 我写 stata-cli&#xff0c;不是因为想再造一个 Stata&#xff0c;也不是因为命令行天然高级&#xff0c;而是因为 Stata 明明是很多实证研究者最熟悉的工具&#xff0c;却一直很难进入现代自动化工作流。 做计量、做实证、做政策评估的人都知道&#xff0c…...

Avogadro 2:开源分子可视化库的终极技术解析

Avogadro 2&#xff1a;开源分子可视化库的终极技术解析 【免费下载链接】avogadrolibs Avogadro libraries provide 3D rendering, visualization, analysis and data processing useful in computational chemistry, molecular modeling, bioinformatics, materials science,…...

cPanel三连漏洞CVE-2026-29201/29202/29203深度解析:150万服务器面临全面接管危机

一、事件引言&#xff1a;2026年主机行业最大安全地震 2026年5月8日&#xff0c;全球市场份额第一的服务器管理面板cPanel & WHM 发布紧急安全公告&#xff0c;一次性披露三个高危安全漏洞&#xff08;CVE-2026-29201/29202/29203&#xff09;。这组被安全界称为"cPa…...

AnyFlip下载器:3分钟将在线翻页电子书变为永久PDF收藏

AnyFlip下载器&#xff1a;3分钟将在线翻页电子书变为永久PDF收藏 【免费下载链接】anyflip-downloader Download anyflip books as PDF 项目地址: https://gitcode.com/gh_mirrors/an/anyflip-downloader 你是否曾在AnyFlip网站上发现一本精彩的电子书&#xff0c;想要…...

UML 关系详解

依赖&#xff08;Dependency&#xff09;含义&#xff1a;一个类的变化会影响到另一个类&#xff0c;但反之不一定。这是一种“使用”关系&#xff0c;通常是临时的、较弱的。典型场景&#xff1a;一个类作为另一个类方法的局部变量、方法参数&#xff0c;或调用静态方法。UML表…...