问一个极简单 的问题。

pinglv 2005-08-12 07:04:41
a[]={1,2,3,4,5}

*p={a+3,a+2,a+1,a}

**q=p

问下式执行结果:

*(a[1]+1)+**(q+2)

...全文
243 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
A1027 2005-08-13
  • 打赏
  • 举报
回复
题目都错了,随怎么简单都没用!
ruiding 2005-08-13
  • 打赏
  • 举报
回复
to ZTAngel(阿羽)

你的程序在VC++ 6.0编译器下没错....
ZTAngel 2005-08-13
  • 打赏
  • 举报
回复
上面的程序我是在C语言里作的。
int *p[]={a+3,a+2,a+1,a};这条语句在C语言里要怎么改了?
ZTAngel 2005-08-13
  • 打赏
  • 举报
回复
对于这个程序:
#include <stdio.h>

int main()
{
int a[]={1,2,3,4,5};
int *p[]={a+3,a+2,a+1,a};
int **q=p;
prinf("%d\n",*(p[1]+1)+**(q+2));
return 0;
}
int *p[]={a+3,a+2,a+1,a};这句报错了,why?

我用 int *p[4]; *p=*(a+3); *(p+1)=*(a+2);...
代替才不报错。一定要这样一个一个的复值吗?
ruiding 2005-08-13
  • 打赏
  • 举报
回复
但是我不理解,我对指针数组比较犯晕 谁能解释一下..
huabihan 2005-08-13
  • 打赏
  • 举报
回复
这种东西搞的头晕,最好直接测试一下。
alrcool 2005-08-13
  • 打赏
  • 举报
回复
答案就是6.不知各位有什么要说的.
ruiding 2005-08-13
  • 打赏
  • 举报
回复
按照楼上给出的代码 结果是 6....
Bobby136 2005-08-13
  • 打赏
  • 举报
回复
题目改成这样:
int a[]={1,2,3,4,5};
int *p[]={a+3,a+2,a+1,a};
int **q=p;
cout<<*(p[1]+1)+**(q+2);
K 2005-08-13
  • 打赏
  • 举报
回复
*p={a+3,a+2,a+1,a}
//p=a;

**q=p//不对!

*(a[1]+1)不对!
**(q+2)不对!
bombwang 2005-08-12
  • 打赏
  • 举报
回复
*(a[1]+1)?
什么意思啊?实在是不明白,数字怎么会变成指针呢
na1ve 2005-08-12
  • 打赏
  • 举报
回复
作业题?写的是错的吧
smjacky 2005-08-12
  • 打赏
  • 举报
回复
挺反感这种题目的
lewe 2005-08-12
  • 打赏
  • 举报
回复
可能就是要你改错去吧
lyclowlevel 2005-08-12
  • 打赏
  • 举报
回复
我把你的代码改成如下:
int a[]={1,2,3,4,5};
int *p[]={a+3,a+2,a+1,a};
int **q=p;
正确的题目应该是如此的。
但即使是这样,
*(a[1]+1)+**(q+2);
是非法的。
lyclowlevel 2005-08-12
  • 打赏
  • 举报
回复
*(a[1]+1)//是错的。
//a[1]+1得到的是一个整数,不是指针。
pinglv 2005-08-12
  • 打赏
  • 举报
回复
不知道是哪个公司的 面试题,就这么多内容
lyclowlevel 2005-08-12
  • 打赏
  • 举报
回复
你把完整的定义贴出来!看不明白。

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧