如果a是一个数组,那么函数(1,a + 2)中的加法意味着什么?

Mar*_*ark 4 c arrays

我正在查看这段代码,如果"a"是一个数组,我不确定添加意味着什么.

int main(int argc, char* argv[]){
int a[] = {1, 3, 5, 7, 9};

function(1, a+2);
return 0;}
Run Code Online (Sandbox Code Playgroud)

假设已经创建了该功能.

oog*_*oga 8

在表达式中(与sizeof或&一起使用时除外),数组名称是指向数组中第一个元素的指针.所以a+2是"指针运算"上的指针,并导致一个指向在所述元件偏移2.它相当于&a[2].

  • 这里需要注意的是,数组不是指针,您不应该总是将其视为一个指针.作者是正确的,数组很容易默认为表达式中的指针,但这两个并不总是可以互换的.请在此处查看更详尽的解释:http://www.lysator.liu.se/c/c-faq/c-2.html (2认同)