若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是( )。
A.int*i=NULL;
B.float*f=NULL;
C.chart='m',*c=&t;
D.long*L scanf("%d",; *f=10.5; *c=&t;L='\0';
参考答案:D
解析: 选项A定义了一个整型变量i,并且初始化让它指向NULL,接着通过scanf()函数,改变i指向的存储空间的值,选项A巾首先定义了整型指针变量i并初始化为NULL,即表示指针i不指向任何内存,即此时程序还没有为i在内存巾开辟存储单元,而在scanf0函数中第二个参数是地址参数,显然在这里i不在表示地址,所以下面的scanf("%d",i)语句足不正确的,故选项A不正确;选项B定义了一个浮点型变量f并初始化让它指向NULL,而当一个指针变量指向NULL以后不能在给它赋值,而接下来的程序中为其赋了一值;故选项B错误;选项C中首先定义了一个字符变量t并给它赋初值'm',然后定义个字符型指针c并让它指向了变量t,这一部分正确,然后接着用了—个语句“*c=&t;”应该将该语句中c前的“,”去掉,故选项C运用指针变量不正确。所以,4个选项中选项D符合题意。