C++ unsigned char *是表示无符号字符指针的意思。

细节如下:

char 前面添加unsigned表示是无符号的字符,也就是不可以存储负数;

在数据类型后面加*表示指针的意思;

指针是C和C++的一种特色数据类型,可以方便的访问内存,也可以通过指针自己控制堆的分配与使用。

此外:

在C中,默认的基础数据类型均为signed,如定义变量为int,long等,都为有符号的。如果要定义无符号类型,必须显式地在变量类型前加unsigned。
char vs unsigned char
相同点:在内存中都是一个字节,8位(2^8=256),都能表示256个数字
不同点:char的最高位为符号位,因此char能表示的数据范围是-128~127,unsigned char没有符号位,因此能表示的数据范围是0~255
实际使用中,如普通的赋值,读写文件和网络字节流都没有区别,不管最高位是什么,最终的读取结果都一样,在屏幕上面的显示可能不一样。
但是要把一个char类型的变量赋值给int、long等数据类型或进行类似的强制类型转换时时,系统会进行类型扩展,这时区别就大了。对于char类型的变量,系统会认为最高位为符号位,然后对最高位进行扩展,即符号扩展。若最高位为1,则扩展到int时高位都以1填充。对于unsigned char类型的变量,系统会直接进行无符号扩展,即0扩展。扩展的高位都以0填充。所以在进行类似的操作时,如果char和unsigned char最高位都是0,则结果是一样的,若char最高位为1,则结果会大相径庭。

参考文章:c语言中 char* 和 unsigned char* 的区别浅析

缘由

yolo.cc里:

C/C++ unsigned char*类型相关推荐

  1. 程序中unsigned char 类型的意义

    对于无符号数来说,左移和右移都是用的逻辑移位,即左移低位空出的补0,右移高位空出的补0: 对于有符号数来说,用的是算术移位,左移多出的会移进符号位,低位空出的补0,右移空出的高位补符号位. 例如: c ...

  2. 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )

    此文章参考<深入理解计算机系统>P31. 先看如下代码:  12345的十六进制表示为:0x00003039 1 #include <stdio.h> 2 3 int main ...

  3. 8位alu运算器(vhdl语言)_C语言中signed char类型,能表示-128到127,为什么负数多一位?...

    初学者在学习C语言,谈到不同数据类型时,一般都能理解 unsigned 和 signed 的区别,无非就是有无符号而已.但是对于 signed 数据类型的数据范围,初学者却常常会感到迷惑. 对于 si ...

  4. 【错误记录】Android NDK 编译报错 ( no known conversion from ‘unsigned char *‘ to ‘const char *‘ )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Visual Studio 2019 中编译 Android NDK , 构建方式参考 [Android 逆向]Android 进程注入工具开发 ...

  5. C语言之unsigned char和uint8_t

    1.问题 今天搞openssl里面的客户端和服务端生成的随机数时候,PC端用的uint8_t数据类型,我用的是unsigned char类型,特么这不日了狗,不一样,后来问了pc端的人,和到网上查了下 ...

  6. 借助opencv将unsigned char数组显示为图像

    在用C或者C++做图像处理程序时,经常需要把结果图显示出来看看效果,这时候可以借助opencv的Mat类型,如下: Mat gray1_mat(rect_height, rect_width, CV_ ...

  7. unsigned char与char的区别

    两者都作为字符用的话是没有区别的,但当整数用时有区别: char 整数范围为-128到127( 0x80__0x7F),   而unsigned char 整数范围为0到255( 0__0xFF ) ...

  8. 将unsigned char字符串以16进制的字符串显示

    在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别         首先在内存中,char与unsigned ch ...

  9. 监测环境温度遇坑记之unsigned char char

     在项目测试阶段呢,前一篇文章已经成功接收到了数据,但是对接收到的数据不是很满意.客户端发送的报文头是0xfd 0xfd,报文尾是0xdf 0xdf ,但是服务器端接收到的报头报尾却是0xffffff ...

最新文章

  1. 窃隐私、放高利贷,输入法的骚操作真不少!
  2. Ninject + UnitTesting + Moq
  3. 用上 RocketMQ,系统性能提升了 10 倍!
  4. 4.2.3 减少磁盘延迟时间的方法
  5. 如何利用Gitlab-CI持续部署到远程机器?
  6. bom实现方块移动_从0开始实现一个俄罗斯方块
  7. redis-full-check
  8. loadrunner12 + ie11 无internet, 代码中文乱码
  9. [UI] 精美UI界面欣赏[4]
  10. Delphi7学习第一天
  11. [Vue] Vue后台模板汇总
  12. Dreamweaver 网页设计作业静态模板
  13. 删除 Win10 资源管理器中的6个文件夹
  14. 如何找短视频素材?这些工具可以帮到你
  15. c语言fscanf 发生段错误,亚嵌教育
  16. codevs1013 求先序排列 string黑科技[三星]
  17. 关于sPLS analysis的一些学习
  18. 2022各大厂商护网面试题
  19. linux 后台不挂断地运行命令
  20. Apple推荐的2020年最佳应用程序已经出炉

热门文章

  1. 搭建简易Linux局网服务器
  2. java中的输入流类,Java数据输入流类
  3. 树莓派云音乐c语言,基于树莓派的红外遥控版网易云音乐播放器
  4. python上机报告出现的问题和解决方法_关于发现存在问题及解决方法的报告
  5. ALV输出的时候,输出字段内容前面的空格
  6. 解决MySql 数据库 提示:1045 access denied for user 'root'@'localhost' using password yes
  7. 销售订单定价-客户取值
  8. 如何查看oracle trace 文件
  9. 系统上线后关键用户的工作建议
  10. ckeditor4 php,CKEditor 4自定义下拉列表