有如下程序段int i=0,j=1;int &r=i;  //①r=j;       //②int*p=&i;  //③*p=&r;     //④其中会产生编译错误的语句是

admin2017-10-17  22

问题 有如下程序段int i=0,j=1;int &r=i;  //①r=j;       //②int*p=&i;  //③*p=&r;     //④其中会产生编译错误的语句是

选项 A、④
B、③
C、②
D、①

答案A

解析 本题考查的知识点是:指针和引用。指针声明的一般形式为: <数据类型>*<声明的指针变量名>;
引用声明的一般形式为:
<数据类型>&<声明的引用变量名>=<被引用的变量名>;
引用声明时必须初始化,而指针则可有可无。通过引用来改变其所引用的对象,直接赋值即可,而通过指针改变其所指对象则须使用一元运算符“*”。在本题中,语句①就是一条合法的引用声明语句,使变量i被r所引用。语句②通过引用r将变量j的值赋给变量i。语句③声明了指针变量p,并初始化指向变量i。而语句④中的*p代表了变量i,欲将&r(变量r的地址值)赋给*p(变量i),这会引起VC6编译器产生一条类型不匹配的错误“无法将类型int*转换为int”。故本题应该选择A。
转载请注明原文地址:https://kaotiyun.com/show/4XAp777K
0

最新回复(0)