扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void只有“注释”和限制程序的作用。void的作用在于对函数返回的限定和对函数参数的限定。
为南宫等地区用户提供了全套网页设计制作服务,及南宫网站建设行业解决方案。主营业务为成都网站制作、成都做网站、南宫网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
例如: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类型在c开发中常见的用法有2种:
1、作为函数的返回值,如void add(int x,int y); 表示该函数吴返回类型,不需要返回值。
2、使用void*指针来使用,比如作为函数的参数类型,如: int max(void* param); --此时的void*表示可以使用任何类型的参数进行转换。如
int a = 10; //普通类型
max((int)a);
typedef struct{int a;}str; //结构体
str S1 ;
S1.a = 2;
max((str)S1);
参考资料来源:百度百科——void
void真正发挥的作用在于: (1) 对函数返回的限定; (2) 对函数参数的限定。
1、void的含义:
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:
void a;
这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。
2、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) );
}
程序运行的结果为输出:2 + 3 = 5,这说明不加返回值说明的函数的确为int函数。
规则二:如果函数无参数,那么应声明其参数为void。
在C++语言中声明一个这样的函数:
int function(void)
{
return 1;
}
则进行下面的调用是不合法的:
function(2);
因为在C++中,函数参数为void的意思是这个函数不接受任何参数。在Turbo C 2.0中编译:
#include "stdio.h"
fun()
{
return 1;
}
main()
{
printf("%d",fun(2));
getchar();
}
编译正确且输出1,这说明,在C语言中,可以给无参数的函数传送任意类型的参数,但是在C++编译器中编译同样的代码则会出错。在C++中,不能向无参数的函数传送任何参数,出错提示“'fun' : function does not take 1 parameters”。
所以,无论在C还是C++中,若函数不接受任何参数,一定要指明参数为void。
3、void具体使用例子:
定义函数
返回值 函数名(参数1,参数2,参数3,.......)
{内容}
int sum(int a,int b)
{
int c;
return c;}
其中第一个int是返回值 就是别的函数调用此函数时这个函数给他的一个值。
如果调用时不需要返回值,则函数写为
void sum(int a,int b){....} 此时函数没有返回值
如果不需要参数 则int sum(void){...}
此时void的意义为空,就是没有参数的意思
如果都不要 则为void sum(void);
扩展资料:
void不能代表一个真实的变量。下面代码都企图让void代表一个真实的变量,因此都是错误的代码:
void a; //错误
function(void a); //错误
void体现了一种抽象,这个世界上的变量都是“有类型”。
void的出现只是为了一种抽象的需要,如果你正确地理解了面向对象中“抽象基类”的概念,也很容易理解void数据类型。正如不能给抽象基类定义一个实例,我们也不能定义一个void(让我们类比的称void为“抽象数据类型”)变量。
参考资料:void(计算机语言关键字)_百度百科
c语言中,void的意思是“无类型”,相应的“void *”为无类型指针,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,其作用是对函数返回和参数的进行限定。
void 可以作为函数返回值类型,有void就代表没有返回值。在定义的函数中,有的函数前是void有的是int或者float等等数据类型,此时它们被称为函数的返回值类型。当返回值类型为void时,称这个函数返回空,或者这个函数无返回值。
c语言void的用法特点:
使用void去修饰指针的时候,这种通用类型的指针可以很方便的和其他类型的指针之间进行相关转换。void另一个重要的应用则就是跟函数进行结合主要有以下两个方面的应用:对函数返回的限定;对函数参数的限定。
void类型不能够用来申明变量和常量,因为申明变量的时候需要明确告诉编译器,该变量是什么类型,比如说是int或char类型,这样编译才好为这个变量去分配存储空间。总的来说,void应用最广泛的就是跟指针结合,而void和指针的结合也大大扩展了指针的可能性。
中文翻译为"无类型"。又名“空函数”
常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。
void的字面意思是"无类型",void *则为"无类型指针",void *可以指向任何类型的数据。
扩展资料:
C语言中的void的用法
void最常见的用法,就是在函数中限定函数的参数和返回值的 void draw(void); 表明函数draw没有参数也没有返回值,void在别的的地方的应用并不存在。
实际上,如果把void 和int,char,double等类型放到一起理解的话,首先还是那句揭示本质的话:变量类型就是固定大小内存块的别名。
那么void占用多大内存呢,编译器并没有定义void占用多大内存,所以对于void var; 这样的定义,编译器自然是不允许的,在vs中的错误提示是:不允许使用不完整的类型。
参考链接:百度百科—void
void意思是主函数(main)的数据类型空返回值。
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
没有返回值的函数:功能只是完成一个操作,应将返回值类型定义为void,函数体内可没有return语句。
有返回值的函数:函数的最后会有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数的。
扩展资料
void的使用
示例:
add ( int a, int b )
{
return a + b;
}
int main(int argc, char* argv[])
{
printf ( "2 + 3 = %d", add ( 2, 3) );
}
参考资料来源: 百度百科—void
参考资料来源:百度百科—返回值
函数定义就是规定函数的格式与功能。
函数声明就是在函数调用之前进行的一种说明。
下面举例说明两者的语法格式:
#includestdio.h
int fun(int a, int b); // 函数的声明
void main()
{
int x=1, y=2;
int c;
c = fun(x+y);
}
// 下面的fun函数就是函数的定义
int fun(int a, int b)
{
return a+b;
}
注:如果被调函数(上例中为fun函数)写在调用处之前,可以不声明(本例是现在调用处 (c = fun(x+y);)之后)。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流