Abh*_*nyu 0 c arrays function argument-passing
如果我只将一个整数数组的元素(不是整个数组)传递给一个函数,它默认是通过值传递还是通过引用传递?
例如-
arr[]={2,3,4,5,6}
ans=fun(arr[2])
Run Code Online (Sandbox Code Playgroud)
和fun是一个函数,它将任意值乘以2,然后如果我之后在main函数中打印arr [2],我会将ans作为8或4吗?任何帮助,将不胜感激.
C没有参考.
int fun(int a) {
a = 0;
}
int main() {
int arr[5] = {2, 3, 4, 5, 6};
fun(arr[2]);
printf("%d\n", arr[2]); //prints 4
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以传递指针(仍然按值传递给函数,但该值是您感兴趣的值的地址).
int fun(int *a) {
*a = 0;
}
int main() {
int arr[5] = {2, 3, 4, 5, 6};
fun(&arr[2]);
printf("%d\n", arr[2]); //prints 0
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我怀疑你是指C++.在这种情况下,函数的签名确定它是否通过引用传递.
int fun(int &a) { //by reference, because of &
*a = 0;
}
int main() {
int arr[5] = {2, 3, 4, 5, 6};
fun(arr[2]);
printf("%d\n", arr[2]); //prints 0
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |