问题 单项选择题

有以下程序:
#include<iostream>
using namespace std;
int main ()

int a[]=1,2,3, 4,5, 6, 7,8,9, 10, 11, 12;
int *p=a+5, *q=0;
*q=* (p+5);
cout<<*p<<" "<<*q<<end1;
return 0;

A.运行后报错

B.66

C.6 12

D.5 5

答案

参考答案:A

解析: 本题考核指针的加减运算。程序首先定义并初始化数组a,并让定义指针 p指向数组a的第6个元素,即a[5]。程序还初始化指针q为空,即没有指向对象。那么语句“*q=*(p+5);”,就是错误的,因为指针q为空。给指针q正确的赋值语句应为:“q=p+5;”。

多项选择题
不定项选择题