问题
单项选择题
有以下程序:
#include <stdio. h>
main( )
int a[]=1,2,3,4,5,6,7,8,9,10,11,12,,*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
程序运行后的输出结果是( )。
A) 运行后报错觉 B) 6 6 C) 6 11 D) 5 10
答案
参考答案:A
解析: 程序中将指针q赋予NULL,即指向了空地址,而对空地址所对应的内容赋值*q =*(p+5)虽然可以输出结果6 11,但最后是会报错的,即输出提示Null pointer assignment。