void指针(void *)是什么?如何使用它

2023-05-16

void 指针的使用规则

1. void 指针可以指向任意类型的数据,就是说可以用任意类型的指针对 void 指针赋值。例如:


int *a;
void *p;
p=a;  

如果要将 void 指针 p 赋给其他类型的指针,则需要强制类型转换,就本例而言:a=(int *)p。在内存的分配中我们可以见到 void 指针使用:内存分配函数 malloc 函数返回的指针就是 void * 型,用户在使用这个指针的时候,要进行强制类型转换,也就是显式说明该指针指向的内存中是存放的什么类型的数据 (int *)malloc(1024) 表示强制规定 malloc 返回的 void* 指针指向的内存中存放的是一个个的 int 型数据。

2. 在 ANSI C 标准中,不允许对 void 指针进行一些算术运算如 p++ 或 p+=1 等,因为既然 void 是无类型,那么每次算术运算我们就不知道该操作几个字节,例如 char 型操作 sizeof(char) 字节,而 int 则要操作 sizeof(int) 字节。而在 GNU 中则允许,因为在默认情况下,GNU 认为 void * 和 char * 一样,既然是确定的,当然可以进行一些算术操作,在这里sizeof(*p)==sizeof(char)。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

void指针(void *)是什么?如何使用它 的相关文章

  • 用conat修饰的类成员——常成员函数、常成员数据、常引用

    xfeff xfeff include lt iostream gt include lt cstdlib gt using namespace std class R public R int r1 int r2 m iR1 r1 m i
  • 对象的生存期——变量的生存期与可见性

    include lt iostream gt using namespace std int i 61 1 i为全局变量 xff0c 具有静态生存期 void other a b是静态局部变量 xff0c 具有静态生存期 xff0c 局部可
  • 类的友元

    include lt iostream gt include lt cstdlib gt using namespace std class Point public Point int x int y friend float dist
  • 树莓派全系列对比

    树莓派全系列参数介绍如下 xff1a 再附上 知乎 64 少数派 的一张图 xff1a Raspberry官网对过去使用的博通Soc的描述 BCM2837B0 This is the Broadcom chip used in the Ra
  • Runtime类

    xfeff xfeff 在每一个java应用程序中 xff0c 都有唯一一个RunTime对象 xff0c 该唯一的RunTime对象可通过getRunTime 方法获得 应用程序不能创建自己的RunTime队象 xff0c package
  • 动态二维数组

    include lt iostream gt include lt cstdlib gt using namespace std class Point public Point cout lt lt 34 执行无参构造函数 34 lt l
  • 获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)

    获得服务器硬件信息 xff08 CPUID 硬盘号 主板序列号 IP地址等 xff09 linux命令 获取IP地址 ifconfig a 获取CPU信息 dmidecode t processor grep ID lscpu cat pr
  • MySQL备份和还原操作

    MySQL备份和还原操作 目标 备份的概念 Mysqldump备份操作 MySQL还原操作 MySQL双机热备份 概述 在数据库表丢失或损坏的情况下 xff0c 备份数据库是很重要的 如果发生系统崩溃 xff0c 能够将表尽可能丢失最少的数
  • MySQL性能优化

    MySQL性能优化 目标 调优思路系统优化mysql服务优化应用优化方式SQL语句调优启用mysql慢查询 调优思路 数据库设计与规划 以后再修该很麻烦 xff0c 估计数据量 xff0c 使用什么存储引擎数据的应用 怎样取数据 xff0c
  • Hadoop伪分布模式安装

    Hadoop伪分布模式安装 Hadoop的运行模式分为3种 xff1a 本地运行模式 xff0c 伪分布运行模式 xff0c 完全分布运行模式 xff08 1 xff09 本地模式 xff08 local mode xff09 这种运行模式
  • 云的几种部署模式

    云的几种部署模式 定义 xff1a 特点云的部署模式 定义 xff1a 云 是一种计算模式 xff0c 利用互联网技术把大量可扩展和弹性的IT相关能力作为 一种服务提供给多个客户 特点 服务化 弹性 多租户 云的部署模式 公有云 混合云 内
  • 通过git 上传本地代码至码云

    实验步骤 1 配置ssh xff08 1 xff09 在本地生成sshkey xff0c 打开git命令终端 git bash 窗口 ssh keygen t rsa C 34 xxxxx 64 xxxxx com 34 你的邮箱 xff0
  • git常见命令

    常见命令 1 初始化本地仓库 git init 2 需要与码云保持一致 git config global user name 34 用户姓名 34 git config global user email 34 用户邮箱 34 3 设置远
  • 【python】详解threading模块:lock、Rlock的使用(二)

    在之前的 python 详解threading模块 xff1a 基本概念 join阻塞和setDaemon守护主线程 xff08 一 xff09 一文中 xff0c 是有对多线程进行一个详细的梳理的 其中就提到了线程锁这一功能 主要基于Rl
  • 定位导航——旋转矩阵,IMU,左右乘

    我们先明确一下这里所说的一些概念 IMU IMU全称Inertial Measurement Unit xff0c 惯性测量单元 xff0c 主要用来检测和测量加速度与旋转运动的传感器 起初只是用来测量角度的 xff0c 后来随着其他传感器
  • scp命令详解

    相关知识 scp是secure copy的简写 xff0c 用于在Linux下进行远程拷贝文件的命令 xff0c 和它类似的命令有cp xff0c 不过cp只是在本机进行拷贝不能跨服务器 xff0c 而且scp传输是加密的 可能会稍微影响一
  • H3C命令详解(笔记)

    1 常用命令 lt gt xff1a 用户视图模式 xff0c 仅仅能配置基本参数 xff0c 调试命令 xff0c 权限较小 xff1a 系统视图模式 xff0c 可以做高级配置 system view 进入系统视图 quit 退出当前模
  • 解决Ubuntu18.04 安装ROS中 sudo rosdep init 和 rosdep update 失败问题

    解决Ubuntu18 04 安装ROS中 sudo rosdep init 和 rosdep update 失败问题 目录 解决Ubuntu18 04 安装ROS中 sudo rosdep init 和 rosdep update 失败问题
  • GD32F303 移植freertos 中断管理设定。。。。

    之前做项目时 xff0c 使用GD32F303并移植了freertos 移植过程网上有很多教程 xff0c 根据这些教程移植就可以 移植完后注意FreeRTOSConfig h中关于RTOS中断管理的设置 我移植时在官网下的是当时最新的RT
  • ros自建功能包操作

    功能包改名 假定功能包原名Apkg xff0c 要改成Bpkg 把Apkg功能包文件夹名改为Bpkg 把CMakeLists txt中project Apkg 改为project Bpkg 把Package xml文件中 lt name g

随机推荐

  • Jacobian矩阵和梯度矩阵

    记号标识 标量 xff1a 常规小写字母 xff1b 向量 xff1a 加粗的小写字母 x 61 x 1
  • 一份还热乎的蚂蚁金服面经(已拿Offer)!附答案!!

    本文转自 xff1a https mp weixin qq com s MzmdxqukOZ6rUta9nkGGw 本文来自我的知识星球的球友投稿 xff0c 他在最近的校招中拿到了蚂蚁金服的实习生Offer xff0c 整体思路和面试题目
  • arduino 自平衡小车3\对mpu6050获得的X轴角度和角速度进行卡尔曼滤波

    对mpu6050获得的X轴角度和角速度进行卡尔曼滤波 mpu6050得到的角度值有些值的偏差较大 xff0c 为了使平衡小车更加稳定 xff0c 需要对获得的角度进行优化 xff0c 使用 卡尔曼滤波 xff0c 代码如下 xff1a in
  • nginx CPU 100 跑满问题定位

    1 确定连接数是不是达到了上限 2 确定是不是开启了gzip压缩 xff0c 确定压缩等级 xff0c 小于1kb的不要压缩 xff1b 图片 xff0c 大文件 xff0c 大压缩文件等不要压缩 3 单个CPU占用100 原因的定位 xf
  • 虚拟串口及其在串口转以太网中的应用

    本文介绍虚拟串口的概念 xff0c 以及如何在串口转以太网中利用该技术 1 虚拟串口的概念 虚拟串口是用操作系统的虚拟驱动技术产生的串口 xff08 COM口 xff09 xff0c 相对于计算机本身的硬件串口 xff08 COM1等 xf
  • 机器学习——PCA降维

    参考文章 xff1a https zhuanlan zhihu com p 77151308 PCA xff08 Principal Component Analysis xff09 是一种常见的数据分析方式 xff0c 常用于高维数据的降
  • C++命名规则--简明即查即用版(Windows开发环境)

    目录 前言 1 类名 2 函数名 3 参数 4 变量 5 常量 6 静态变量 7 全局变量 8 类的成员变量 前言 Microsoft推出的命名规则匈牙利法是 在变量和函数名中加入前缀以增进人们对程序的理解 xff0c 但如此一来太为繁琐
  • STM32中的FreeRTOS-#1(入门)

    写在前面 xff1a 我一直觉得 xff0c 如果我能把一点知识说给别人听 xff0c 并且别人能听懂 xff0c 大概率我自己真的学会了 记录的过程也是自己梳理的过程 xff0c 本系列我把它称为 教程 xff0c 是想把它写得系统且有条
  • 信号量 与 互斥量的区别

    原文来源 https blog csdn net ZhipingXi article details 78031307 信号量 与 互斥量 xff08 锁 xff09 的区别 一 概念和定义 信号量 xff1a 多线程同步使用的 xff1b
  • opencv版本问题,引起的vins视觉结果漂移

    最近在根据vins代码进行改写 xff0c 实验发现 当opencv为3 4 12版本时 xff08 core imgproc imgcodecs这几个库 xff09 xff0c vins 优化结果会非常飘 如果vins结果比较离谱 xff
  • i.MX6U SPI浅析

    1 SPI简介 SPI 全称是 SerialPerripheral Interface xff0c 也就是串行外围设备接口 SPI 是 Motorola 公司推出的一种同步串行接口 技术 xff0c 是一种高速 全双工的同步通信总线 xff
  • 【飞控协议】MavLink介绍和编译

    MavLink是什么 xff1f MavLink xff08 Micro Air Vehicle Link xff0c 微型空中飞行器链路通讯协议 xff09 是在串口通讯基础上的一种更高层的开源通讯协议 xff0c 主要应用在无人飞行器与
  • 工作中常用到的设计模式-调用第三方系统接口

    一 概述 外呼业务场景中 xff0c 有一个关键的接口就是黑名单接口 xff08 包括客户投诉 退订接口 是否还款等 xff09 xff0c 我们系统需要经常去跟外部第三方系统交互 xff08 http方式 xff09 一个请求都会经历这几
  • 多旋翼飞行器振动机理分析和减振设计

    多旋翼飞行器振动机理分析和减振设计 开源资源与pdf版论文见 https gitee com robin shaun Multicopter Vibration Attenuation或 https github com robin sha
  • USB3的端口识别Realsense D435i的USB为USB2的解决办法

    如果确定系统没有问题 xff08 识别其他的设备为USB3 xff09 时 xff0c 可参考如下解决方案 xff0c 来自https www intel com content www us en support articles 000
  • XTDrone无人机仿真平台

    XTDrone无人机仿真平台 背景XTDrone展示 背景 近年来 xff0c 无人机的智能化程度不断提高 xff0c 集群的规模不断增大 xff0c 在这种背景下 xff0c 良好的无人机通用仿真平台的重要性越发凸显 相较于无人车和地面机
  • 栈的Java实现--链栈

    栈的Java实现 链栈 链栈 xff0c 顾名思义 xff0c 就是以链表的形式实现的栈的相关操作 xff0c 其实是功能弱化了的链表 xff0c 如果已经阅读过链表的实现代码 xff0c 那么链栈的实现显得更为容易 链栈的基本结构 xff
  • Xavier NX使用NoMachine注意账户名

    由于NoMachine使用NX技术 xff0c 因此会创建一些命名含有nx的文件 xff0c 因此安装NoMachine时确保Xaiver NX的账户名不是nx xff0c 否则可能会有冲突导致开不了机的严重后果
  • docker下删除两个id相同的镜像

    今天建立docker容器的时候由于疏忽 xff0c 镜像的名字输错了 xff0c 结果容器创建成功后 xff0c 镜像中出现两个id相同的 xff1a 使用docker rmi e4a35914679d删除的时候执行失败 xff1a Err
  • void指针(void *)是什么?如何使用它

    void 指针的使用规则 1 void 指针可以指向任意类型的数据 xff0c 就是说可以用任意类型的指针对 void 指针赋值 例如 xff1a int a xff1b void p xff1b p 61 a xff1b 如果要将 voi