问题
单项选择题
有以下程序: #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;”。