void与NULL详解
void 是 “空”类型(无值型),意思是这种类型的大小无法确定。
并不存在void类型的对象,所以也就不能声明void类型的对象或者将sizeof()运算符用于void类型,C++/C语言不能对一个大小未知的对象直接操作。
void 通常用来定义函数的返回类型,参数列表(无参)或者void指针。
void指针可以作为通用指针,因为它可以指向任何类型的对象。
void指针与NULL指针值之间的区别:
NULL是可以赋值给任何类型指针的值0,在C语言中它的类型为void*,而在标准的C++语言中由于允许从0到任何指针类型的隐式转换,因此NUll就是整数0.
即:
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void*)0)
#endif
一个void*类型的指针是一个合法的指针,常用于函数参数中来传递一个函数与其调用者之间约定好的类型的对象地址,例如在线程函数中;而一个值等于NULL的指针虽也是一个合法的指针,但不是一个有效的指针。
void与NULL详解的更多相关文章
- js中 javascript:void(0) 用法详解
点击链接不做任何事情: <a href="#" onclick="return false">test</a> <a href=& ...
- 转!!Java中关于Null的9个解释(Java Null详解)
对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认 ...
- c语言NULL和0区别及NULL详解
先看下面一段代码输出什么: #include<stdo.h> int main() { int *p=NULL; printf("%s",p); } 输出<n ...
- C/C++编程笔记:C语言NULL值和数字 0 值区别及NULL详解
在学习C语言的时候,我们常常会碰到C语言NULL值和数字 0 ,很多小伙伴搞不清楚他们之间的一个区别,今天我们就了解一下他们之间的区别,一起来看看吧! 先看下面一段代码输出什么: 输出<null ...
- Linux /dev/null详解
常用的命令展示 /dev/null 和 /dev/zero的区别 1./dev/null:表示 的是一个黑洞,通常用于丢弃不需要的数据输出, 或者用于输入流的空文件 ...
- Android中的surfaceHolder.lockCanvas(null)返回为null详解
对于新手学习SurfaceView的时候获取lockCanvas的时候总是返回null的问题很是纠结 canvas = surfaceHolder.lockCanvas(new Rect(0, 0, ...
- 原生JS:delete、in、typeof、instanceof、void详解
delete.in.typeof.instanceof.void详解 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/doc ...
- void与void*详解
void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型: 2. 如果函数无参数,那么应声明其参数为void: 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void ...
- 【转】void 详解
void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型: 2. 如果函数无参数,那么应声明其参数为void: 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void ...
随机推荐
- Python学习---爬虫学习[scrapy框架初识]
Scrapy Scrapy是一个框架,可以帮助我们进行创建项目,运行项目,可以帮我们下载,解析网页,同时支持cookies和自定义其他功能. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的 ...
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引
一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...
- JS和css实现检测移动设备方向的变化并判断横竖屏幕
这篇文章主要介绍了JS和css实现检测移动设备方向的变化并判断横竖屏幕,本文分别给出实现代码,需要的朋友可以参考下 方法一:用触发手机的横屏和竖屏之间的切换的事件 [自测可用, chrome , 手 ...
- 最新版本2018.1.1webstorm安装、汉化、破解教程
一.安装(下载与激活) 1.官网下载安装包https://www.jetbrains.com/webstorm/ 2.开始安装 3.选择安装目录,点击下一步 4.勾选64位,点击下一步 5.继续下一步 ...
- js 判断图片是否加载完成
1.根据url来加载图片: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 /** * 加载图片,直到加载完成后才调用回调函数 * @param url 后面读取图片流的u ...
- Uva1395 POJ3522 Slim Span (最小生成树)
Description Given an undirected weighted graph G, you should find one of spanning trees specified as ...
- C++编译器符号表有哪些内容?
http://blog.csdn.net/wangbingcsu/article/details/48340479 C++编译器符号表有哪些内容? 很早就想写一篇关于符号表的学习小结,可是迟迟不能下笔 ...
- ansible--03
一. Ad-hoc命令简介 1. 格式:ansible <host> [opion] 2. option参数: -v:输出详细的执行过程, -vvv最详细的结果 -i:指定inventor ...
- SQL Server 断开某个数据库所有连接(还原的时候需要)
问题描述: SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样 解决办法: 右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -&g ...
- 论mysql主从复制里面的那些坑
1.找好配置文件,修改对的配置文件,有的时候会有多个配置文件,要搞清楚加载的哪个配置文件. 2.主库备份钱的操作除了设置 只读状态外,还要设置全局只读=1. 3.mysqldump备份sql很方便,恢 ...