首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C语言中的void的理解

大家好,又见面了,我是你们的朋友全栈君。1 初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并 详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义: void a; 这行语句编译时会出错,提示“illegal use of type ‘void’”。不过,即使void a的编译不会出错,它也没有任何实际意义。 void真正发挥的作用在于: (1) 对函数返回的限定; (2) 对函数参数的限定。 我们将在第三节对以上二点进行具体说明。 众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型 转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。 例如: float *p1; int *p2; p1 = p2; 其中p1 = p2语句会编译出错,提示“’=’ : cannot convert from ‘int *’ to ‘float *’”,必须改为: p1 = (float *)p2; 而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换: void *p1; int *p2; p1 = p2; 但这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针。因为“无类型”可以包容“有类型”,而“有类型”则不能包 容“无类型”。道理很简单,我们可以说“男人和女人都是人”,但不能说“人是男人”或者“人是女人”。下面的语句编译出错: void *p1; int *p2; p2 = p1; 提示“’=’ : cannot convert from ‘void *’ to ‘int *’”。 3.void的使用 下面给出void关键字的使用规则: 规则一 如果函数没有返回值,那么应声明为void类型 在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。例如: add ( int a, int b ) { return a + b; } int main(int argc, char* argv[]) { printf ( “2 + 3 = %d”, add ( 2, 3) ); }

02

javaEE与java的区别

好程序员Java培训分享Java EE与Java的区别,有不少想要转行做程序员的朋友都会有一个疑问,Java EE和Java是不是一种语言,这两者之间又有什么区别呢?   Java一共分为三个版本:Java SE(标准版)、Java EE(企业版)以及Java ME(微型版)。   其中Java SE就是大家所熟知的Java根底,Java EE在企业最常用的地方就是网站PC端的开发,而Java ME常用于移动端开发,现在熟悉的安卓系统便是用Java ME开发的。   Java既可以被编译,也可以被解说。经过编译器,可以把Java程序翻译成一种中间代码 -称为字节码-可以被Java解说器解说的独立于渠道的代码。经过解说器,每条Java字节指令被剖析,然后在核算机上运行。只需编译一次,程序运行时解说履行。   Java不同于一般的编译履行核算机言语和解说履行核算机言语。它首先将源代码编译成二进制字节码(bytecode),然后依靠各种不同渠道上的虚拟机来解说履行字节码,然后完成了“一次编译、到处履行”的跨渠道特性。   或许用一种更总结性的话术来表达便是:Java跨渠道便是能在不同的环境(主要是操作系统)上运行Java程序!   这也是Java为什么这么火,为什么这么多年仍然耸峙不倒且久盛而不衰的原因。一个无视于渠道,跨渠道的言语,必定有持久的生命力。而作为程序员来说,职业发展的长远规划,挑选Java远比挑选其他无法完成跨渠道的言语,更有长远价值(包括现在非常盛行的HTML5言语,也是一种跨渠道言语,“一次设计,普遍适用。一次编写,到处布置”)。   类似的Java EE、Java SE、Java ME可简单的总结为三点:Java SE是做电脑上运行的软件。   Java EE是用来做网站的-(大家常见的JSP技能)Java ME是做手机软件的。但是Java EE在Java中,比Java SE和Java ME应用更加广泛,价值更高,因此有许多企业会直接要求应聘人员掌握Java EE。   回顾过去十五年的效果,Java一直是数一数二的。Java现已占据了从前C言语所拥有的位置,而C言语在Java开始盛行之前一直是最受关注的言语。TIOBE指数也曾宣告本年是Java言语年,而十年之前,Java就已然获此殊荣。非常等待Java可以取得另一个十年当中的年度最佳编程言语。   JavaEE与Java有什么差异?通过上文的解答相信各位读者朋友们都已经有所了解了。

02
领券