首页 新闻 会员 周边

C数组问题

0
[已解决问题] 解决于 2011-11-22 08:19

int array[10];

2[array]是什么意思?

对等的间接访问表达式为什么是*(2 + ( array ) )?

ttssrs的主页 ttssrs | 初学一级 | 园豆:82
提问于:2010-12-29 09:46
< >
分享
最佳答案
-1

[] 是个运算符,和加减法符号一个样

因此,2+array 等价于 array+2

呵呵

牢记,[]是运算符

极端说,C这种语言里面,数组 is nothing

徐少侠 | 菜鸟二级 |园豆:293 | 2010-12-31 11:16
其他回答(4)
0

2[array]是什么意思?这个我没遇到过

array是整个数组的起始地址,相当于array[0]的地址,array[2]的地址等价于array的地址+2个INT空间的大小

*(2 + ( array ) )就是对array[2]的地址取内容,即array[2]

viperchaos | 园豆:200 (初学一级) | 2010-12-29 09:50
0

array[2]和*(array+2)等效,数组名是标识数组所储存单元的首地址,也就是array[0]与*array等效,更详细的请参考谭浩强版的C语言书

Fujialin | 园豆:60 (初学一级) | 2010-12-29 09:51
那么2[array]是什么意思?
支持(0) 反对(0) ttssrs | 园豆:82 (初学一级) | 2010-12-29 10:04
2[array]和array[2]等效,你自己在编译器下调试,就会明白的
支持(0) 反对(0) Fujialin | 园豆:60 (初学一级) | 2010-12-29 10:12
0

2[array]真没见过这个

安义 | 园豆:205 (菜鸟二级) | 2011-01-30 16:24
0

#include<stdio.h>
int main()
{
  int array[10]={1,2,3,4,5,6,7,8,9,0};
  printf("%d\n",2[array]);
  return 0;
}

 

结果:

oclili | 园豆:198 (初学一级) | 2012-09-07 11:52

我把这个程序跑了一下,提示:error C2018: unknown character '0xa1',是怎么回事呀?

支持(0) 反对(0) 黄中超 | 园豆:200 (初学一级) | 2012-09-26 17:13

@黄中超: 你用的是什么编译器???我有运行了一遍,没这种问题!

支持(0) 反对(0) oclili | 园豆:198 (初学一级) | 2012-09-26 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册