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

tomcat做静态网站24小时免费资源在线观看

tomcat做静态网站,24小时免费资源在线观看,建立自信,安防网站建设一、void* 的类型任意性 void* 是一种通用指针类型。它可以指向任意类型的数据。例如,它可以指向一个整数(int)、一个浮点数(float)、一个字符(char)或者一个结构体等。在C语言中,当…

一、void* 的类型任意性

void* 是一种通用指针类型。它可以指向任意类型的数据。例如,它可以指向一个整数(int)、一个浮点数(float)、一个字符(char)或者一个结构体等。在C语言中,当你使用void*指针时,你不需要在编译时指定它将指向的数据类型。这使得void* 在一些需要通用指针的场景下非常有用,比如在内存分配函数malloc中返回的就是void*类型的指针。因为malloc函数不知道用户将要分配的内存用于存储哪种类型的数据,所以它返回一个void*指针,用户可以根据自己的需要将其转换为特定类型的指针。
例如:

void* ptr = malloc(10 * sizeof(int));
int* intPtr = (int*)ptr;  // 将void*指针转换为int*指针

在这个例子中,void*指针 ptr 可以指向分配的内存区域,然后通过类型转换将其转换为int*指针,用于存储整数数组。

二、编译器对 void* 的类型检查

编译时不做类型检查(针对void*本身)编译器在编译时不会对void*指针本身进行类型检查。因为 void* 表示“未知类型”的指针,编译器无法知道它实际指向的数据类型。所以,当你对void指针进行操作(如赋值等)时,编译器不会检查其指向的数据类型是否正确。例如,你可以将一个指向整数的指针赋值给void指针,也可以将一个指向字符的指针赋值给void*指针,编译器都不会报错。

int a = 10;
char b = 'k';
void* vp1 = &a;
void* vp2 = &b;

在这个例子中,vp1和vp2都是void*指针,分别指向了不同类型的变量a和b,编译器不会对这种赋值操作进行类型检查。

三、需要显式类型转换

当你想要使用 void* 指针访问其中的某个值时,通常需要先将其转换为特定类型的指针,然后通过转换后的指针来访问值。在转换时,你需要明确指定目标类型,编译器会对转换后的指针类型进行检查。例如,如果你想通过 void* 指针访问一个整数的值,你需要先将其转换为 int* 指针。
例如:

void* vp = malloc(sizeof(int));
*(int*)vp = 20;  // 先将void*转换为int*,然后通过int*指针赋值

在这个例子中,vp是一个void*指针,指向分配的内存。在给这块内存赋值之前,需要先将其转换为int*指针。如果转换的目标类型和实际存储的数据类型不匹配,可能会导致运行时错误。 比如,如果这块内存实际上存储的是一个浮点数,而你将其转换为int*指针并访问,可能会得到错误的结果或者引发程序异常。编译器在转换时会检查语法是否正确(如是否有合适的类型转换操作),但对于类型转换的正确性(即是否符合程序的实际逻辑)主要依赖于程序员的正确使用。

占用的字节

一、32位系统
在32位系统中,void* 指针通常占据4个字节。这是因为32位系统中的内存地址空间是2的32次方(即4GB),用4个字节(32位)就可以表示一个内存地址。例如,在一个32位的Windows系统或者32位的Linux系统上,无论是void指针,还是其他类型的指针(如int、char*等),它们都占据4个字节。这4个字节存储的是一个内存地址,这个地址可以指向进程地址空间内的任意位置。

二、64位系统
在64位系统中,void* 指针通常占据8个字节。64位系统有更大的内存地址空间,理论上可以达到2的64次方字节。因此,需要用8个字节(64位)来表示一个完整的内存地址。在64位系统上,无论是 void* 指针,还是其他类型的指针,它们的大小都是8个字节。这使得64位系统能够访问更大的内存空间,支持更大的数据处理和更复杂的程序运行。

四、总结

通过我们上面的介绍, 我们发现 void* 在 C 语言中是经常使用的, 它主要有下面这几个方案:

  1. 第一个方案就是作为结构体的字段, 这样我们可以去表示对应的范型字段
  2. 函数的参数, 或者返回值, 但是我觉得这种最好少用, 因为导致对应的接口不够明确
  3. 各种内存相关的函数, 这其实就是一个很奇妙的东西, 因为在操作系统级别, 我们并不知道这块内存到底是什么类型的变量

约定: 当我们在使用 void* 的时候, 我们最好弄清楚当前这个指针指向的信息, 可以通过明确的变量名来完成

http://www.yayakq.cn/news/838601/

相关文章:

  • 网站建设制作博走就业服务工作站建设规范
  • 深圳外贸网站公司企业网站建设的上市公司
  • 内蒙古建设厅官方网站无锡网站建设价格
  • app ui设计欣赏 网站营销策划公司名字大全
  • 优惠券怎么做自己的网站宿州保洁公司哪家好
  • 重庆欧勒精细有限公司网站策划书吉林省网站建设公司
  • 高级网站开发培训企业建立一个网站步骤
  • 专业做网站哪个公司好洪梅镇网站建设公司
  • 北京管庄网站建设公司陕西建设网网
  • 企业做网站哪家网站好商城系统有哪些
  • 网站建设佰金手指科杰三经过开发建设 网站上线了
  • 网站设计的流程简答题网站的登录弹窗怎么做
  • 企业科技网站建设交换友情链接的要求有
  • 什么是一学一做视频网站简答题网站建设步骤
  • 网站建设好发信息网河北石家庄最新消息今天
  • 女人动漫做受网站网易企业邮箱注册流程
  • 做爰全过程免费的视频99网站wordpress页面中设置网址导航插件
  • 青岛做企业网站的公司湛江专业建站优质商家
  • 如何使用阿里云建设网站企业网站管理系统论文
  • 聊城网站建设品牌flash做网站的论文
  • dede学校网站免费源码wordpress rewrite iis
  • 网站建设部门宣言网站上的搜索怎么做
  • dw做网站视频教程phpcms学校网站模板
  • 网站权重为零做一个网站做少钱
  • 金光华网站建设微信网站制作软件有哪些
  • 提升了自己的网站网站域名申请流程
  • 2013网站怎么备案毛概课程网站建设
  • 站酷官网首页网站排名查询工具
  • 永康做企业网站的公司黄页网站介绍
  • 公司网站建设升上去个人做地方网站