C标准中关于空指针的那些事

1 C标准不保证用所有二进制位都为0的变量来表示空指针,但它保证空指针与任何对象或函数的指针都不相等,取地址操作符&永远也不会返回空指针;

2 C标准称在指针上下文中的“值为0的整形常量表达式”会在编译时转换为空指针;

3 C标准中,在使用非零位模式作为空指针的内部表示的机器上,NULL和其他机器一样,定义为0或(void*)0,编译器在指针上下文看到的未加修饰的0都会被生成正确的空指针;

4 C程序猿或媛应该明白,在指针上下文中NULL和0是完全等价的;

5 C确保源代码中的0(用于指针上下文)会生成空指针;

6 malloc(0)可以返回NULL或者指向0个字节的指针;

7 空指针和空指针常量是2码事:前者是将后者赋给一个指针类型的结果,且不一定二进制位为全0,而后者2进制为一定为全0,即等于NULL;

8 任何空指针相互比较或和NULL比较结果一定为true,任何空指针和非空指针比较结果一定为false;

9 C中还有一种字面常量NUL,它的确是全0哦!

时间: 2024-11-17 08:06:54

C标准中关于空指针的那些事的相关文章

PHP前端开发中的性能那点事

 在我们平时的php开发中,一个大的项目经过长时间的积累以后你会发现性能越来越慢,而性能到底消耗在了什么地方,常常是一个令人头疼的问题,function a()调用了多少次,function b()又消耗了多少时间,我们到底怎么查找是哪个蛀虫拉慢了我们的程序运行速度呢?在这里给大家介绍一款工具xdebug,相信很多人已经听说过了,希望借助这个工具我们可以起到简单分析php程序性能瓶颈的问题. A)假设1,假设用户目录在/home/ad B)假设2,假设php目录在/home/ad/php 1.x

swing中Jlist的点击事事件

问题描述 swing中Jlist的点击事事件 如图,怎么获取点击后的str是哪一个? 解决方案 用additem那个事件监听器 解决方案二: expandablelistview 点击事件

java ActionEvent事件处理中出现空指针

问题描述 java ActionEvent事件处理中出现空指针 public void actionPerformed(ActionEvent e){ String buttonName=((JButton)e.getSource()).getName(); } e.getSource()返回不是空值,而调用getName()方法却得不到按钮的名字, 而是返回空值? 解决方案 Java核心技术(事件处理)java学习笔记---第8章事件处理Java的事件处理机制 解决方案二: 那就说明你没有设置

C标准中一些预定义的宏

 C标准中指定了一些预定义的宏,对于编程经常会用到.下面这个表中就是一些常常用到的预定义宏. 宏(双下滑线) 意义 __DATE__ 进行预处理的日期("Mmm dd yyyy"形式的字符串文字) __FILE__ 代表当前源代码文件名的字符串文字 __LINE__ 代表当前源代码中的行号的整数常量 __TIME__ 源文件编译时间,格式微"hh:mm:ss" __func__  当前所在函数名 对于__FILE__,__LINE__,__func__这样的宏,在调

JavaScript ES5标准中新增的Array方法_javascript技巧

ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (js v1.6) map (js v1.6) filter (js v1.6) some (js v1.6) every (js v1.6) indexOf (js v1.6) lastIndexOf (js v1.6) reduce (js v1.8) reduceRight (js v1.8) 1.js中常用的数

fragment-Fragment中遇到空指针 请问是什么原因

问题描述 Fragment中遇到空指针 请问是什么原因 解决方案 哈哈,我自己解决了,是因为我在布局里把fragment写成了FrameLayout (⊙﹏⊙)b. 然后又出现 了新的问题:Caused by: java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout cannot be cast to android.widget.RadioGroup. 也解决了.(*^__^*) 在libs下的an

谈Web标准中10个最经常犯的HTML标签错误

请熟读并记下以下10条.这份列表包含了10个最经常犯的HTML标签错误,记下他们,能够让我们避免犯此常见错误,让我们的HTML标签符合语义,和标准的要求 罪行1:把块级元素放入了行内元素内   HTML 元素的表现方式不外乎就两种:块级和行内.每一个标签都有默认的表现方式不是块级就是行内.像div和p 就是块级元素,他们用来形成文档结构.行内元素只能在快级元素内. 罪行2: img 标签没有包含alt属性   alt属性是所有显示在网页中图片的必须属性,它能够帮助人们知道这是什么图片.或者在网速

学习web标准:Web标准中的特殊字符

在最开始学习web标准的时候有这么一条: 把所有<和&特殊符号用编码表示 :任何小于号(<),不是标签的一部分,都必须被编码为& l t ; 任何大于号(>),不是标签的一部分,都必须被编码为& g t ;任何与号(&),不是实体的一部分的,都必须被编码为& a m p;注:以上字符之间无空格. 而在我们平时的工作中经常会遇到这种情况: 更多>> 国内的同行大多是写两个大于号>>或者干脆就写>>(更夸张的是有人为

WEB标准中使用CSS的基础教程

css|web|web标准|基础教程 CSS过去经常被用来定义字体的属性,而现在可以用它来控制整个文档的布局.然而,为了有效的用CSS来控制布局,需要做一些不同的处理,这种不同是跟用表格布局相对比的. 为了CSS可以高效的控制布局,结构化.语义化的XHTML是必不可少的. 浏览器的支持 在过去几年,浏览器对CSS的支持程度已经改进了很多.不幸的是,浏览器的开发商好象对实施开放的标准并不感兴趣,所以不同浏览器对CSS的支持程度也大相径庭.就算是支持程度最好的浏览器,在软件中仍然有一些bug,使得浏