void的用法
2017-11-16 16:38
393 查看
含义
抽象类,无对应实体,不允许有对应变量,所有类型都继承自void
void“无类型”
void * 为“无类型指针”,可以指向任何类型的数据。
用法:
一、无类型指针可以存放所有地址(包括自身地址),但是不具备读取能力(对内存没有解释能力),也不具备+1的能力。(Linux下gcc编译器可以+1,每次加一个字节)
二、 void * ,任何类型的指针都可以直接赋值给它,无需进行强制类型转换。但是 void *则需要强制类型转换地赋给其它类型的指针。
三、 如果函数没有返回值,那么应声明为void类型。在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。
四、 如果函数无参数,那么应声明其参数为void
抽象类,无对应实体,不允许有对应变量,所有类型都继承自void
void“无类型”
void * 为“无类型指针”,可以指向任何类型的数据。
用法:
int a; void *p; int *s=&a;
一、无类型指针可以存放所有地址(包括自身地址),但是不具备读取能力(对内存没有解释能力),也不具备+1的能力。(Linux下gcc编译器可以+1,每次加一个字节)
p=&s;//正确 *p=>s;//错误,没有读取能力 p=&p;//正确,可以存放自身地址
int a=10; int *s=&a; void *p=NULL; char x=*(char *)p;//正确 char x=(char) *p;//p无读取能力,*p不存在
二、 void * ,任何类型的指针都可以直接赋值给它,无需进行强制类型转换。但是 void *则需要强制类型转换地赋给其它类型的指针。
void *p1; int *p2; p1 = p2; p2=(int*) p1
三、 如果函数没有返回值,那么应声明为void类型。在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。
add (int a, int b) { return a + b; } int main() { printf("2+3=%d", add(2,3)); return 0; }
四、 如果函数无参数,那么应声明其参数为void
int fun(void) { return 1; }
相关文章推荐
- - (void)setNeedsDisplay得作用和用法
- javascript:void(0)的用法
- a href=javascript:void(0) 用法
- <a href="javascritp:void(0)">的用法
- C++ Primer 学习笔记与思考_7 void和void*指针的用法
- C++ void*用法记录
- void 和void * 的 用法
- javascript:void(0)和javascript:;的用法
- void *指针的用法特点
- javascript:void(0)的用法讲解
- 关于c语言的typedef高级用法 typedef void (*post_sync_t)(CO_Data*);
- void指针的用法
- java中void方法return的用法
- void的两个奇葩用法
- void指针(void *的用法)
- void * 的用法
- 什么是对象?什么是类?什么是构造方法?static的用法!public static void main什么意思。
- js中 javascript:void(0) 用法详解
- u-boot中((void (*)(void)) addr) ();函数的用法
- javascript:void(0);用法及常见问题解析