问题:
[单选] 有以下程序:#include<stdio.h>
main()
{int a[J一{1,2,3,4,5,6,7,8,9,10,11,12),*P=a
+5;
*q=NULL;+q=*(p+5);
printf(”%d%d\n”,*q,*q);
}
程序运行后的输出结果是( )。
A . 运后后报错
B . 6 6
C . 6 11
D . 5 10
参考解析:
【解析】本题中首先定义了一个一维数组。并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p-a+5语句使得P指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
在Word2000文档的编辑状态下,执行“编辑”菜单下的“粘04-20
将加粗文字行设置为样式标题1,首行缩进1个厘米,黑体四号04-20
在Access的5个最主要的查询中,能从一个或多个表中检索04-20
(简答题)"大数据"是指各行各业产生的海量数据04-20
(简答题)Access 2010提供了多种数据类型,写出其中5种。04-20
下列选项中,数值最大的是()04-20
(简答题)在PowerPoint 2010中有4种动画设置,写出其中的304-20