第1个回答 2013-09-24
这是两个不同的问题。在C中,要想调用函数来实现交换两个变量,那么此函数参数必须是指针类型。
一个数组结构中的各个对象在内存中的布局是为连续的线性排列,程序员认为,数组名表示整个数组。实际上,它是数组第一个元素的地址(它很重要),将数组名作为函数参数就意味着传递一个地址过去。事实是,当知道了一个地址,你才可以采取某种层访问。‘[ ]’可以称为变址运算符,编译之前,它被语法器解析为第一个元素的绝对偏移地址,下标对应偏移量的因子:数组基类型所占的字节大小 * 下标pos 。因此a[pos]等于*(a+pos)。