范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

详解C语言数据类型之void类型

  在程序中,每一个变量都应该有相应的数据类型,数据的类型决定了编译器可以为之开辟多少的空间来存放数据。
  例如:int 类型需要 4 个字节,char 类型需要 1 个字节,指针类型需要 4 个字节等等。
  但 C 语言中还有一种特殊的数据类型——void。 1. void 介绍
  void 表示为 "无"、"空"、"没有" 的意思。
  在这里就把 void 理解为啥也不是。
  作为一个数据类型,如果用 void 声明变量会是什么情况呢?
  编译器要 给数据分配多少的内存空间 ,是要 依据变量定义时的数据类型 。
  而 void 类型比较特殊。虽然也是一种数据类型,但不确定性太强了。
  如果可以用 void 声明变量,你要是开心先给个 int 整型的数据,不开心再给个 char 字符型的数据,或者 double 类型的数据。
  这要求的内存空间一会儿大,一会儿小的,编译器也很难办。
  内存就那么点,经不起这么折腾。
  因此, void 数据类型是不能直接用在变量声明的 。
  那么 void 应该被用在哪里呢? 2. 函数的参数
  void 最常使用就是用在函数里面,第一个就是 函数的参数 。
  通常会看到如下的函数原型定义: int func(void); int func();
  这两个函数表示的意义是一样的,都是 无参数、返回值为 int 类型 的函数。
  但有一点不同。根据不同的编译器,对语法检验严格程度也有所不同。用 g++ 编译就有可能出现以下的情况: int func1(void) {   return 1; } int func2() {   return 2; } int main() {   func1();   func2();   func1(123); // error   func2(123);   func1(3.14); // error   func2(3.14);   return 0; }
  参数部分为 void 的函数,在调用函数的时候,有传入实际参数的时候会产生报错, 传入的参数太多了! 实际上参数为 void 的函数是不能传入任何类型的参数。
  而参数部分啥都没有的函数,调用函数的时候可以传入任意类型是不会报错的。
  不过这个问题大体上没有人会这么做,因为毫无意义。 3. 函数的返回类型
  void 的另一个作用,就是在 函数的返回类型 上面。
  有时候,我们只需要函数运行的过程,而不是为了获取最后的结果。此时就可以使用 void 类型,表示该函数 没有返回值 。
  例如:我只想交换 a 和 b 两个变量分别存储的数据。 #include void swap(int *a, int *b) {   int temp;   temp=*a, *a=*b, *b=temp; } int main() {   int a=3, b=5;   swap(&a, &b);   printf("a=%d, b=%d ", a, b);   return 0; }
  运行结果:a=5,b=3
  一般在 void 定义的函数里面,return 是多余的。不过,即便加上 return 返回值(gcc 6.3版本中),也对函数没有什么影响。
  既无法 重新使用其他数据类型定义的变量来接收函数的返回值 ,也 不能在 printf 函数中使用的 。
  4. void *指针
  void * 指针表示为 无类型指针 ,作为一个指针类型,编译器已经为其妥善安排了 4 个字节的小房间。
  因此,void * 指针类型可以用来定义变量。 void *p; p = NULL;
  void * 指针虽名为无类型指针,但 可以指向任何一种类型的数据 ,即 其他类型指针的指可以不通过强制转换直接赋给 void * 指针 。 void *p; int *a; p = a; float *f; p = f;
  在 C 语言当中,对指针类型的转换要求不是那么严苛,可以不通过强制转换就可以进行相互间的赋值。 int *a = NULL; float *b = NULL; char *c = NULL; a = b; b = c; c = a;
  虽然编译器(gcc 6.3版本)不会显示有错误,编译照常会通过。只是会给出类似下面的警告:
  警告 C4133 "=": 从"float *"到"int *"的类型不兼容
  而在 C++ 当中,这一点要求就明显比较严格了。它不允许两个不同的类型指针相互赋值,除了 void * 指针。
  其他的类型指针可以把值直接赋给 void * 指针,但反过来,void * 指针的值想要赋值给其他类型的指针,也需要通过强制转换。 void *p = NULL; int *a = (int *)p; // 通过 float *b = p; // 报错
  void * 指针还有一个非常强大之处,在函数定义的时候,作为参数。当调用的时候, 无论什么类型的类型指针或数组 都可以正常运行。 #include int test(void * dst){...} int main() {   char *c = "123456";   int arr[] = {1, 2, 3, 4, 5, 6};   test(c);  // 正常编译   test(arr);  // 正常编译   return 0; }
  不过 void * 指针也有一个致命的缺点,当对该指针进行算数操作,就会显示以下这个错误。
  根据 ANSI C 标准规定,进行算数操作的指针,必须明确知道该指针所指向的数据类型大小。也就是所指向的数据,都必须是具体的类型,而不是空泛的 void 类型。 最后
  关于 C 语言 void 数据类型的内容就到此结束了。
  感谢各位的观看,如果您觉得本文章还不错,点个赞支持一下呗。
  当然,如有发现不足之处,或者错误的地方,欢迎留言指出,不胜感激!

首度破冰?蔡崇信转发杜兰特公司出品篮球纪录片表态肯定欧文天赋打卡挑战局北京时间7月29日,在杜兰特申请交易之后,篮网老板蔡崇信三缄其口,一直没有表态。但是,这一次他首次转发了一条与杜兰特相关的推文,并且表态肯定了欧文的篮球天赋。这条推文的内萌黄放出爆料时间,不仅有雏田和面具男,还有9月S忍以及新佐助?火影忍者手游在8月份会有两个剧场版的忍者上架,分别是日向雏田和神秘面具男。但是,这两个忍者目前只是在策划直播中看到了立绘,忍者的技能消息完全未知,只是知道一个大概的上架时间会在8月走进西班牙乡村,探寻农业的支柱作用走进西班牙乡村,探寻农业的支柱作用(指导老师贺逸君,国际交流学院通讯员钟尚谷)7月26日,湘潭大学国际交流学院西班牙留学生分队前往西班牙圣马里亚德尔帕拉莫乡村进行实地走访调查。圣马昔日全球头号女骗子,与富豪聊天与总统共进晚餐,为何锒铛入狱?说到大名鼎鼎的乔布斯,可能对其并不陌生,甚至很多人对于乔布斯有着极高的评价。最大的原因就是乔布斯打开了智能手机全新的市场,重新定义了智能手机的意义。可是在美国,曾经还有一位被称之为最新版膳食指南公布限盐标准再次提高,4种高盐食物要学会拒绝食盐虽为百味之首,但吃盐无小事,尤其在日常进食中既离不开盐也不能多吃盐。根据全球的一项调查研究发现因过量摄入食盐(即每天超过安全标准)的群体,每年可导致300万人死于心脏病脑卒中等冠心病高血压高血糖要避开这些食物来源健康时报健康时报权威健康资讯,因专业而信赖!一些常见的食物,没患慢病之前,大家经常吃可能没什么问题,但患了慢病后,则要注意,如果吃错了,可能会对病情产生影响。1。冠心病患者慎吃茂名顶级古温泉酒店也内卷了,超值两日游,含自助早晚餐,很便宜山海联游698抢茂名御水古温泉度假酒店2天1晚双人美食套票!含自助早餐43个温泉池大象水乐园晚餐套餐自助晚餐浪漫海岸景区门票,使用期至1030点击我的头像,再点击底部活动资讯,搜索糖尿病人吃冷米饭能降血糖?糖友的主食搭配,需注意3点对于中国人来说,吃米饭都是吃热米饭,冷米饭觉得太硬了,吃着就跟没煮熟一样,根本就难以下咽,一般吃剩下的米饭,要么再加热,要么汤泡饭,要么就是炒饭。很少有人会吃冷米饭,而人均寿命一直提醒中老年人平时要少吃米面,多吃这5种粗粮,补足营养身体棒现在生活条件好,吃穿住行早已不是我们要考虑的事情。尤其是对于一些上年纪的人来说,该吃吃该喝喝,凡事不往心里搁早已成为他们的生活宣言,提高自己的晚年生活质量才是重中之重。不过要注意的全世界最小晓龙8发布?价格很自信就在昨天,全世界尺寸最小的晓龙8旗舰机诞生了。这款屏幕只有5。9英寸,机身仅长146。5毫米仅宽68。1毫米厚9。1毫米重169克的晓龙8旗舰手机比6。28英寸的小米12S还要小上氮化镓技术进入户外电源领域,Anker全氮化镓户外电源曝光2022年7月,安克召开新品发布会,这是继2018年安克首次全球发布并量产氮化镓充电器后又一场重要的发布会,再度带来HFB架构全时功率分配技术等全新黑科技技术,发布了全氮化镓快充系
环游记云南游记(十二)重游丽江古城雨后古城从沙溪出发,下一站的目的地在丽江,不到100公里的路程,从天晴到大雨又缓缓转而为晴,天气略感有些冷,驻好车已经是饥肠辘辘。此时房车上的火锅弥漫着诱人的香气,本地的牛肉香嫩弹新疆行那拉提绿色的立体画卷2022。7。2224。2022年7月22日星期五今天离开巴音郭楞州的巩乃斯镇,很快就进入伊犁州的新源县。随即就横穿独库公路到那拉提了。这一路已是热门的旅游度假区,一路上时可见一片易武的顶级茶之一,冷水河冷水河,属于易武刮风寨片区。是刮风寨细分出来的名产区之一。刮风寨的四大名产区有茶王树冷水河茶坪白沙河。冷水河位于易武刮风寨东南方向,几乎在最深处,靠近老挝。去茶地的路程很远,一路需我在大渡口,想和你一起看云舒霞卷虽已立秋但重庆依然舍不得放夏天离开我们不妨静下心来在大渡口看蔚蓝天空的云卷云舒望红霞满天的落日余晖摄影钟戈公园大渡口多彩艺术湾大渡口生态环境质量持续提升天蓝地绿水清人和大渡口蓝已经从飞盘到陆地冲浪,年轻人将运动玩出新花样沈欣雨(南京师范大学)8月9日,中国青年报在微博发文继飞盘之后,年轻人又爱上陆地冲浪?,引发网友讨论。越来越多的网友逐渐意识到,陆地冲浪突然火了,越来越多的年轻人加入到这项运动中来古代海上丝路中转站曾每日行舟300多艘封川古城墙。如今的封川古城。封川县城砖特写。古城内的居民依然过着平静的生活。在封开,有这么一座城堡,它始建于唐代,经历沧海桑田,见证了封开千年发展变迁,留下了不可磨灭的历史印记,它怎么判断一个孩子有没有数学天赋?分享几个简单实用的观察点,帮助我们观察以免浪费孩子的天赋。数学天赋在加德纳多元智能里叫数理逻辑智能,我曾在多元智能与家庭教育中看到过一些方法帮助我们观察优势智能的方法,以下分享。一所有为人父母者都应该反思你的孩子敢向你求助吗?昨天在一个社交网络平台刷到一个23岁的女孩子,宫颈不规则出血,痛得影响正常生活,却不敢去就医,原因是她正在交往一个男朋友,如果去医院了就会让父母知道她已经有了性生活记得几年前看到一孩子肥胖危害大,家长该如何应对?来源健康中国球球今年11岁,是一个读五年级的男孩子。球球饭量大,运动量却很小。眼看着球球的体重与日俱增,运动能力也越来越差,球球妈妈对此深感忧虑,遂带球球到医院就诊。医生完善病史询南非莱索托监狱一个犯人也永远不想再来的地方监狱是关押犯人的地方,一般来说,危险程度越高的罪犯就会被送到等级和戒备程度越高的监狱。今天我们要讲的这座监狱,却非常奇葩,一提到它的名字,就连最凶残的罪犯都闻风丧胆,但其戒备程度却为了爱情,一个印度贱民骑自行车一万公里,从印度骑到了瑞典文快哉风40多年前,一个印度男人和一个瑞典女人发生了一段令人难以置信的真实故事。印度男人名叫马哈南迪亚(PKMahanandia),1949年出生在印度的一个偏远村庄,是一个低种姓