C++菜鸟来提问:请求详细解答哈,谢谢你!1.有如下定义: int a[5]={1,3,5,7,9}, *p=a;下列表达式中不能得到数值5的是().A a[2] B a[3] C *(p+2) D *p+4 答案A我觉得应该是B才

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/30 05:44:08
C++菜鸟来提问:请求详细解答哈,谢谢你!1.有如下定义: int a[5]={1,3,5,7,9}, *p=a;下列表达式中不能得到数值5的是().A a[2]  B a[3]   C *(p+2)     D *p+4                                答案A我觉得应该是B才
xVRF~dȺX8e:+ jb2d% 8 pk&`h0D+ɿx 8tjlEgη~˭z*NvN Ns*v}|ko♜]\gro `a ' ya3(FrsʖstEmVM|4s֋]iHU夑;iJbЊ2L'2 j}Au+Wr6Tm֩V~_ 3ݕߞ̿Hl.p2\ } s|'\5d/-ڋGfmz9rzcpO^Sx6Ѽ8<fn0}>P}>tJ{d1?9`%.%~R/{v):*w)Zl|@Bm2zg/ڛښw* 47=ƐNAڸxEe֬Ukflap gkvaޫ4egO]\-FtIGbz];Hyvt =G9ΐۢ߸GѬWg"|Iw'-(h!! m.'tBmdǹ~v:&t[&:_?s]"0A}M&{ү߹(Q*E=LjT Hz$HWȝúF/7CwIp\ JP(!+E4$$ RbXԸ QY"ѰD ɡ / '$.%(,S,(*!U4Yb8!RBbX .V:.ԭ2 }8XYʱ=>',9'&v wXáN>^(&eg`!WlwMĽ:+>;Y/J oY[@V/ "&$!Qp ,aChAGj$R$ "1 F#H;#b"`"'DQZ!.dAS$r bi|PnJV$<3<=I1|䦧&TvyxW,>Ew)'E1VLK *D @םkqxmsŅ%nCx%ﻕM?ݧ)4C@%Ywޘ͙vUw2P~V[IcStFYX):w2-}hH||4;MPdt..΢ZfxUz pX}(PXot@<1>e6Ni+[Cx

C++菜鸟来提问:请求详细解答哈,谢谢你!1.有如下定义: int a[5]={1,3,5,7,9}, *p=a;下列表达式中不能得到数值5的是().A a[2] B a[3] C *(p+2) D *p+4 答案A我觉得应该是B才
C++菜鸟来提问:请求详细解答哈,谢谢你!
1.有如下定义: int a[5]={1,3,5,7,9}, *p=a;下列表达式中不能得到数值5的是().
A a[2] B a[3] C *(p+2) D *p+4 答案A
我觉得应该是B才对呀?

2.这两个小题想请问 为什么第二个就没选C p[5]呢?不然就和第一个小题矛盾了.
设有int a[20], *p=x; 则下面中哪个与x[1]不等().
A p[1] B *++p C *++a D *(a+1) 答案A
设有int a[10], *p=a ;则下面哪种表示与a[5]不等价().
A *(a+5) B *(p+5) C p[5] D p+5 答案D
3.这样的指针用法为什么错误:定义有 int i; int*p; i=*p; ?
不是在交换操作中 也出现了类似的东西吗?如下:
void swap(int *p1,int *p2)
{ int t;
t=*p1;
*p1=*p2;
*p2=t;
}
我是C++菜鸟 请您详细回答哦 呵呵!

C++菜鸟来提问:请求详细解答哈,谢谢你!1.有如下定义: int a[5]={1,3,5,7,9}, *p=a;下列表达式中不能得到数值5的是().A a[2] B a[3] C *(p+2) D *p+4 答案A我觉得应该是B才
int main(int argc, char *argv[])
{
       
    int a[5]={1,3,5,7,9}, *p=a;
    for(int i=0;i<5;i++)
        cout<<i<<"\t";
    cout<<endl;
    for(int i=0;i<5;i++)
        cout<<a[i]<<"\t";
    cout<<endl;
    return 0;
}

你可以去执行以下.答案是A.

数组的下标是从0开始的.

2.

第二题,答案有误

int main(int argc, char *argv[])
{
int a[5]={1,3,5,7,9}, *p=a;
cout<<p[1]<<endl;
cout<<*++p<<endl;
cout<<*++a<<endl;
cout<<*(a+1)<<endl;
return 0;
}


编译器报错

c++ 中数组和指针是两个不同的概念.数组名虽然看起来很像是一个指针,但是又和指针不是一个东西.

cout<<*++a<<endl;这句话执行失败.原因

【数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;】

数组名是指针常量.自加操作时不可实现的.

答案应该是C


3.最后一个是因为你定的是一个函数.函数并没有执行.如果执行的时候你再传一个空指针或者野指针进去,执行必然是要失败的.