功能的参数
Parameters of Functions
功能的一些重要参数是指示,地址和数组。
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 中的指针变量和参考变量之间有什么区别?
相关文章:
- 对可变参数使用声明.如何选择正确的功能
- 如何在C++中调用默认模板功能参数?
- 如何从其他功能C++访问参数?
- 如何定义可变参数类模板的成员模板功能
- C++ std::enable_if - 第二个参数的功能
- 对于非常量指针类型的参数,未调用具有常量指针模板类型参数的功能
- 具有C++迭代器参数的多功能函数
- "(void) cast"与功能有什么区别 "__attributes__"来沉默未使用的参数警告?
- C 函数调用包装器包含类成员功能作为模板参数
- 非拖动功能模板参数包的合法使用
- 组件X86转换为ARM功能呼叫,其中有不同数量的参数为ARM
- 公共功能以私人课程为参数
- 如何部分专业化功能以用元组元素作为参数调用功能
- 如何存储指针以功能模板,该模板将可呼叫对象作为其参数之一
- std ::功能作为默认参数的功能
- C 功能模板指定第二个模板参数类型
- 传递多个参数的功能,该函数将类包含到其他函数
- 别名一个模板函数,该功能没有参数可更简洁
- 如何推断for_each的模板参数功能
- 用户界面-GUI和文本模式C++设计,以消除冗余(可选参数?功能过载?)