Passed by reference and passed by value
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <iostream> using namespace std; void main() { int x[3] = {5,2,4}: swap(x,1,2); } void swap(int[] list, int i, int j) { int temp = list[i]; list[i] = list[j]; list[j]= temp; } |
我想知道这意味着什么,我得到了传递值。但是我不太熟悉指针和值结果?有人会解释或给我举个例子来说明C和下面的方法吗?
型
您的困惑是因为数组不存在于函数参数列表中。
详细说明:
1 2 3 4 | void swap(int list[25], int i, int j) void swap(int list[5], int i, int j) void swap(int list[], int i, int j) void swap(int* list, int i, int j) |
实际上是相同的功能。
也:
1 2 | int arr[30]; int* ptr = arr; // does the same as int* ptr = &arr[0] |
号
这些C样式数组的混淆语义是创建
回答你的问题:
百万千克1不能按值传递C数组。百万千克1百万千克1可以通过引用传递c-array(
有关数组的详细信息,请检查此堆栈溢出问题