如果我有以下函数...
假设这个数组有5个元素(我知道数组的长度)。 代码可以成功编译并运行,'a'和'b'的值符合预期。
在什么情况下我会使用方法2而不是方法1?
void function(double *array)
{
double a = array[3]; // Method 1
double b = *(array + 3); // Method 2
}
假设这个数组有5个元素(我知道数组的长度)。 代码可以成功编译并运行,'a'和'b'的值符合预期。
在什么情况下我会使用方法2而不是方法1?
[]
是数组的语法糖(或者将指针视为数组)。*
解引用指针,而+
取一个指针和一个整数值,返回一个偏移了该数量的指针。这只是C++规则的一个例子。 - payo*
的情况下使用方法2,当我需要将结果存储在指针中时。 - Neil Kirk3[array]
也是有效的,并且等同于array[3]
。 - avakar