问题 单项选择题

有以下程序:#includemain(){int n,*P=NULL;*P=&n;prinff("Input n:");scanf("%d",&p);prinff("output n:");prinff("%d\n",P);}该程序试图通过指针P为变量n读入数据并输出,但程序有多处错误,以下语句正确的是【 】。

A.intn,*P=NULL;

B.*P=&n;

C.scanf("%d",&p)

D.printf("%d\n",p);

答案

参考答案:A

解析:指针变量在定义时需要加星号,而在赋值时则不用,故选项B)错误。本题中,scanf()函数和printf()函数都是要对指针变量p指向的地址处的数据进行访问,不是变量本身。选项C)中多了取地址运算符,选项D)中少了指针运算符。

名词解释
单项选择题