我正在查看一些源代码,在代码中它有一些我不完全理解的代码.下面是一个基本的伪示例,模仿我无法理解的部分:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在在另一个方法体中有:
void mySecondMethod(){
myMethod(myArray + 10);
}
Run Code Online (Sandbox Code Playgroud)
这是我没有得到的第二种方法:当你将数组指针和int传递给想要数组指针的参数时,它意味着什么?我只是想加强我的知识,我一直试图搜索它,但没有找到任何信息.
它只是表示"此数组中第11个元素的地址".
这是指针算法的一个例子,它是C的核心特性(也是C++的核心特征,尽管它可能被认为有点"低级别").
表达式意味着"获取第一个元素的地址myArray,并将10个元素的大小添加到该元素".
它的工作原理与之相同myArray[10],因为索引操作符确实非常适合*(myArray + 10).
myArray[10] == *(myArray + 10)
&myArray[10] == myArray + 10
Run Code Online (Sandbox Code Playgroud)