指针 (2)

目录

 

1.指针变量的⼤⼩

2 指针的解引⽤

 3指针+-整数


 

1.指针变量的⼤⼩

指针变量的大小和编译器的位数有关系,例如vs2022的 x64 就是64位, x86 就是 32位

当两个同时运行一个代码的时候就会有差异。

 

 当我在运行x86的时

 

 总结:        

在x86 环境运行下得出指针变量大小是 4

 在x64环境下运行结果是  8

 

 当我在x86环境下把   int  类型改成  char 类型 

 

 

 在x64环境下 int 类型和char 类型一样

  

 下面结论得出:

 

 在x86/ x64环境下 指针变量的大小不会因为指针的类型而改变,而是随编译器的环境而改变的。

在x86/64 就是 4/8字节

2 指针的解引⽤

在下面观察的内存中的变化

 当程序走完后就会发现 值发生了变化

 而如果将 int 改成char 就会有差异了。

 

 如果你想要访问一个字节的指针 可以使用char *的指针,想要访问4个字节的指针可以选择int *指针

 

 3指针+-整数

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

 

 我们可以看出, char* 类型的指针变量+1跳过1个字节, int* 类型的指针变量+1跳过了4个字节。 这就是指针变量的类型差异带来的变化。指针+1,其实跳过1个指针指向的元素。指针可以+1,那也可 以-1

结论:指针的类型决定了指针向前或者向后⾛⼀步有多⼤(距离)

 

 

#include <stdio.h>
nt main()
{int a = 20;char c = 'w';void *pa = &a;void* pc = &c;//*pc = 200;//在给pa改变值时候就无法使用了return 0;
}

在上⾯的代码中,将⼀个int类型的变量的地址赋值给⼀个char*类型的指针变量。编译器给出了⼀个警 告(如下图),是因为类型不兼容。⽽使⽤void*类型就不会有这样的问题。

 

 那么 void* 类型的指针到底有什么⽤呢? ⼀般 void* 类型的指针是使⽤在函数参数的部分,⽤来接收不同类型数据的地址,这样的设计可以 实现泛型编程的效果。使得⼀个函数来处理多种类型的数据

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

java面对对象高级

1.类变量和类方法 1.1static变量 &#xff08;1&#xff09;类变量&#xff1a; 也叫静态变量/静态属性&#xff0c;所有对象共享并且所有对象访问的值是相同的 static变量是同一个类所有对象共享的 static类变量&#xff0c;在类加载的时候就生成了 &#xff08;2&#xff09…

MySQL基础篇 - SQL

01 SQL通用语法 02 SQL分类 03 DDL语句 04 DML语句 05 DQL语句(单表查询) 05_01 学习总览 05_02 基本查询 05_03 条件查询 【应用实例】&#xff1a; 05_04 聚合函数 05_05 分组查询 05_06 排序查询 05_07 分页查询 【boss题目】&#xff1a; 05_08 执行顺序 06 DCL语句 【概…

国家标准和团体标准有什么区别?

国家标准和团体标准的区别主要体现在以下几个方面&#xff1a; 1. 制定标准的主体不同&#xff1a;国家标准是由国家机构通过并公开发布的标准&#xff1b;团体标准是由学会、协会、商会、联合会、产业技术联盟等社会团体协调相关市场主体共同制…

Libtorrent 安装、编译与使用(附 Boost 的编译与使用)

文章目录 Part.I IntroductionChap.I 预备知识Chap.II 所用设备系统与软件Part.II 准备工作Chap.I 编译 Boost 库Chap.II 下载必需文件Part.III 编译与使用 LibtorrentChap.I 运行 Example 和 TestChap.II 使用库文件ReferencePart.I Introduction libtorrent 是 BitTorrent 协…

Unity场景内画车道线(根据五阶曲线系数)

之前做过使用Dreamteck Splines插件构建车道线之前需求是给定车道线的点位&#xff0c;根据点位来进行构建。 由于AI识别出来的点位不线性&#xff0c;画出来的车道线经常是歪七扭八&#xff0c;所以使用五阶曲线系数进行构建。 使用在线图形计算器进行测试构建&#xff0c;公式…

开源鸿蒙OpenHarmony系统修改屏幕旋转方法 深圳触觉智能RK3566开发板

本文提供OpenHarmony4.0系统竖屏修改为旋转时的操作方法&#xff0c;在此为大家介绍了两种方法&#xff01;第一种方式是将修改过的文件重新编译后烧录至开发板中实现屏幕旋转&#xff0c;第二种方式则是通过覆盖原文件的方式实现屏幕旋转。 1、源码下载 首先进入触觉智能官网…

Prompt输出限制怎么写?用CCoT限制输出长度的推理,大幅提高LLM准确性

图片由修猫创作 一项由意大利比萨的著名高等教育和研究机构圣安娜高等学校Sania Nayab等人进行的研究为这个问题提供了一个创新的解决方案- Constrained Chain-of-Thought (CCoT)提示技术。这项研究不仅提出了控制LLM输出长度的新方法&#xff0c;还开发了一套评估LLM输出简洁…

新闻文本分类识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+TensorFlow+Django网页界面

一、介绍 文本分类识别系统。本系统使用Python作为主要开发语言&#xff0c;首先收集了10种中文文本数据集&#xff08;“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”&#xff09;&#xff0c;然…

推荐一个免费的学习ROS机器人的大模型

可以帮你快速写推文 聚合古月居资源&#xff0c;帮你推荐古月居学习路径 学习古月居产品?古月知道绝对是你的好帮手&#xff01; 无聊想唠嗑&#xff1f;和古月知道一起唠嗑吧&#xff01; 想学点别的&#xff0c;但是古月居没找到对应的文章怎么办&#xff1f; 还有很多很多&…

【MyBatis 源码拆解系列】MyBatis 运行原理 - MyBatis 中的代理模式

欢迎关注公众号 【11来了】 &#xff0c;持续 MyBatis 源码系列内容&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址&#xff1a;点击查看文章导读&#xff01; 感谢你的关注&#xff…

图变换器:为图数据增强神经网络架构

人工智能咨询培训老师叶梓 转载标明出处 当面对图数据时&#xff0c;尤其是那些拓扑结构重要的图&#xff0c;传统的 Transformer 架构并未能充分利用图的连接性特征&#xff0c;导致性能受限。为了解决这一问题&#xff0c;新加坡南洋理工大学的研究人员提出了一种新的神经网…

数字私家侦探必备工具

在当今快节奏的数字环境中&#xff0c;技术是法医调查的关键组成部分&#xff0c;因为它将传统技术转化为复杂的数字操作。数字私家侦探的出现给侦查方式带来了显著的变化。这些专家收集、检查和储存数字证据 使用尖端技术&#xff0c;这对于解决涉及电子数据的问题至关重要。用…

Vue.js与Flask/Django全栈开发实战:从零搭建前后端分离的高效Web应用,打造现代化全栈开发体验!

将Vue.js与Flask或Django等后端框架配合使用&#xff0c;可以构建一个全栈的Web应用。以下是一个简要的指南&#xff0c;介绍如何将Vue.js与Flask或Django结合使用。 1. 准备工作 确保你已经安装了Node.js、npm&#xff08;或yarn&#xff09;以及Python和相应的包管理工具&am…

JAVA开源项目 学科竞赛管理系统 计算机毕业设计

本文项目编号 T 047 &#xff0c;文末自助获取源码 \color{red}{T047&#xff0c;文末自助获取源码} T047&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

CSS 实现文本溢出省略号显示,含单行与多行文本溢出

&#x1f680; 个人简介&#xff1a;某大型国企资深软件研发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…

CNS-WRFID-01地标卡读写器|写卡器DEMO软件读、写操作说明

CNS-WRFID-01地标卡读写器|写卡器是一款高频读写设备&#xff0c;支持ISO15693协议芯片卡&#xff0c;地标标签读写&#xff0c;支持兴颂系列抗金属|非抗金属RFID标签&#xff0c;如&#xff1a;CNS-CRFID-01、CNS-CRFID-02、CNS-CRFID-03、CNS-CRFID-04、CNS-CRFID-05、CNS-CR…

任意长度并行前缀和 扫描算法 《PMPP》笔记

下面的算法针对于任意长度输入 对于大数据集&#xff0c;首先将输入分为几段&#xff0c;每一段放进共享内存并用一个线程块处理&#xff0c;比如一个线程块使用1024个线程的话&#xff0c;每个块最多能处理2048个元素。 在前面代码中&#xff0c;一个块最后的执行结果保存到了…

网站建设中,JavaScript为什么现在可以做后台了?

JavaScript&#xff0c;作为一种最初为浏览器端脚本设计的语言&#xff0c;已经逐渐发展成为可以在服务器端运行的强大工具。以下是JavaScript可以做后台开发的原因分析&#xff1a; Node.js的崛起 事件驱动与非阻塞I/O&#xff1a;Node.js的事件驱动和非阻塞I/O模型使得JavaSc…

【YOLOv10改进[SPPF]】使用 FocalModulation替换SPPF(模型结构变化小+涨点) + 含全部代码和详细修改方式

本文将进行在YOLOv10中使用FocalModulation改进v10 的实践,助力YOLOv10目标检测效果,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 改进前和改进后的参数对比如下: 目录 前言 一 FocalModulation 二 使用FocalModulation改进v10的实践 1 整体修改 ① 添加F…

js实现两个轴直线插补圆弧插补

效果图 源代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Multi-Axis Motion with Canvas</title><style>body {margin: 0;}#controls {position: absolute;top: 10px;right: 10px;…