首页 > 试题广场 >

有定义 int *p=NULL; 下述正确说法为()。

[单选题]

有定义 int *p=NULL;  下述正确说法为()

  • p指向的单元的值为0
  • p指向的单元的值为NULL
  • p不指向任何有效单元
  • p指向的变量的值为0
推荐
本题选C
实际上NULL代表整数0,也就是使p指向地址为0的单元。这样可以使指针不指向任何有效的单元。因此C选项正确。
系统已经定义了NULL:
#define NULL 0
C++中在iostream头文件中就包括了以上的NULL定义,NULL是一个符号常量。
在C-free编辑器中运行:
#include<iostream>
using namespace std;
int main(){
	cout<<NULL<<endl;
}
应注意,p的值等于NULL和p未被赋值是两个概念。前者是有值的(值为0),不指向任何变量,后者虽未对p赋值但并不代表p无值,只是它的值是一个无法预料的值,也就是p可能指向某一个未指定的单元。这种情况是非常危险的。因此,在引用变量之前一定要对其进行赋值。


编辑于 2020-02-17 14:40:05 回复(0)

发表于 2020-05-23 09:24:41 回复(0)
选C,不指向任何有效单元
发表于 2020-02-17 16:28:46 回复(0)
C。指针的值为其指向的地址值,NULL是0的宏表示,若指针指向 0 则表明该指针不指向任何有效单元。
编辑于 2020-02-14 17:27:58 回复(0)