Array + int作为一个参数做什么?

时间:2013-10-22 15:23:18

标签: c++ arrays

我正在查看一些源代码,在代码中它有一些我不完全理解的代码。下面是一个模拟我无法理解的部分的基本伪示例:

    float *myArray;

    object(){
        myArray = new float[20];
    }

    ~object(){   
    }

    void reset(){
        delete [] myArray;
    }

    void myMethod(float *array){
        for (int i = 0; i < 20; i++){
            array[i] = 0.5f;
        }
    }

现在在另一个方法体中有:

    void mySecondMethod(){
        myMethod(myArray + 10);
    }

这是我没有得到的第二种方法:将数组指针和int传递给需要数组指针的参数时,这意味着什么?我只是想加强我的知识,我一直试图搜索它,但没有找到任何信息。

2 个答案:

答案 0 :(得分:7)

它只是表示“此数组中第11个元素的地址”。

这是指针算术的一个例子,它是C的核心特性(也是C ++的核心特征,虽然它可能被认为有点“低级”)。

表达式意味着“获取myArray的第一个元素的地址,并将10个元素的大小添加到”。

它的作用与myArray[10]相同,因为索引运算符实际上是*(myArray + 10)的糖。

答案 1 :(得分:5)

myArray[10]  == *(myArray + 10)

&myArray[10] == myArray + 10