请帮忙用VC.net外的别的编译器编一下这个小例程,并报告运行结果,非常感谢!

fireseed 2003-08-18 10:01:06
/* 以下代码在VC.net环境中编译、调试通过,并正常运行*/
/* Creamdog保留所有权力 */

#include <iostream>
using namespace std;

void main()
{
int a[4] = { 3, 4, 1, 2 };
2[a] = 10;
cout << a[2];
system( "pause" );
}
...全文
97 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
antijpn 2003-08-18
  • 打赏
  • 举报
回复
Borland C++ 5.5 Complier
结果10
lifanxi 2003-08-18
  • 打赏
  • 举报
回复
不好意思,抄错了一点,就不严谨了应该是E1[E2] 等价于 *((E1)+(E2))。
chanet 2003-08-18
  • 打赏
  • 举报
回复
2[a] = 10 == *(2*a[0])
lifanxi 2003-08-18
  • 打赏
  • 举报
回复
标准上说了H1[H2] is identical (by definition) to *(H1+H2),所以没有特别奇怪的。2[a]就是a[2]。
TopCat 2003-08-18
  • 打赏
  • 举报
回复
2[a]=10 是非常合法的C语句,如果有哪个编译器通不过才奇怪了。

只不过这种语法我们不太用而已。

ironic 2003-08-18
  • 打赏
  • 举报
回复
在c中,数组名只是一个地址而已
所以,无论在什么情况下 a[5] == 5[a]都是成立的

忘了上边的话是在哪里看的了
fireseed 2003-08-18
  • 打赏
  • 举报
回复
2[a] = 10; //你们没有注意到这一句吗?
lifanxi 2003-08-18
  • 打赏
  • 举报
回复
修改后在BC31和TC2中也是10
你想试什么?这个程序的结果应该没什么好疑问的呀。
lzh7800 2003-08-18
  • 打赏
  • 举报
回复
:),dev-c++编译器,输出为:10
lifanxi 2003-08-18
  • 打赏
  • 举报
回复
DEV(要改成int main)和VC6中输出都是10

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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