功能的参数

Parameters of Functions

本文关键字:参数 功能      更新时间:2023-10-16

功能的一些重要参数是指示,地址和数组。

void somethingHappens (int *a); //pointers
void somethingHappens (int& a); //address
void somethingHappens (int arg[]); //array

如果我要使用(初始化)上面的功能,它将看起来像?我的答案在下面。如果我错了,请纠正我。

int i = 9; int j[20] = {1,2,3,4,5};
somethingHappens(&i); //pointers
somethingHappens(&i); //address - Not really sure...
somethingHappens(j); //array

我是否错过了功能的其他重要参数?

在第一种情况下(正如您正确提到的),该参数通过指针传递,即参数的地址传递给方法。因此,该方法可以直接访问指针指向的内存位置(请记住,指针也是一个变量,但它保存了一个内存地址)。

在第二种情况下,该论点作为别名传递。它与第一个方法非常相似,唯一不同的是您使用参数的内存地址不是访问其值。

在第三种情况下(有趣的是),当您传递数组变量时,它会通过参考传递(如果阵列ARR [],ARR代表数组的基础地址,即零元素的地址或ARR的地址[0])。因此,操纵方法中的数组也将在呼叫者中反映。

第二种情况下

void somethingHappens (int& a);

呼吁应为形式,

somethingHappens(i); 
// somethingHappens(&i); is wrong because &i means the location of i, 
// while the method is expecting an alias and not an address


更多信息

  • C 参考
  • C 中的指针变量和参考变量之间有什么区别?