如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
许多程序员认为在所有的指针上下文中都应该使用NULL, 以表明该值应该被看作指针。另一些人则认为用一个宏来定义0, 只不过把事情搞得更复杂, 反而令人困惑。因而倾向于使用未加修饰的0。没有正确的答案。C 程序员应该明白, 在指针上下文中NULL 和0 是完全等价的, 而未加修饰的0 也完全可以接受。任何使用NULL (跟0 相对) 的地方都应该看作一种温和的提示, 是在使用指针; 程序员(和编译器都) 不能依靠它来区别指针0 和整数0。在需要其它类型的0 的时候, 即便它可能工作也不能使用NULL, 因为这样做
发出了错误的格式信息。(而且, ANSI 允许把NULL 定义为((void *)0), 这在非指针的上下文中完全无效。特别是, 不能在需要ASCII 空字符(NUL) 的地方用NULL。如果有必要, 提供你自己的定义
#define NUL ’ ’
发出了错误的格式信息。(而且, ANSI 允许把NULL 定义为((void *)0), 这在非指针的上下文中完全无效。特别是, 不能在需要ASCII 空字符(NUL) 的地方用NULL。如果有必要, 提供你自己的定义
#define NUL ’ ’
【如果NULL和0作为空指针常数是等价的,那我到底该用哪一个】相关文章
1. 如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2. 如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
3. 在使用非全零作为空指针内部表达的机器上, NULL是如何定义
4. 用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
7. 空指针到底是什么
8. 我能否用void** 指针作为参数, 使函数按引用接受一般指针
10. 空字符串(“”)和null的区别
本文来源:https://www.mianshiwenti.com/a13069.html
进入下载页面
﹝如果NULL和0作为空指针常数是等价的,那我到底该用哪一个﹞相关内容
- string = null 和string = \'\'的区别
- NULL是什么,它是怎么定义的
- 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
- 我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
- 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- 软件测试LoadRunner面试题:If web server, database and Network are all fine where could be the problem?
- 如何向接受结构参数的函数传入常数值
- 求升职?我与老板等价交换!
- 在Java开发中如何选择使用哪种集合类
- 请问软件开发中的设计模式你会使用哪些