#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和下面方法的例子吗?
答案 0 :(得分:1)
您的困惑是由于函数参数列表中不存在数组这一事实造成的。
详细说明:
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)
实际上是相同的功能。
此外:
int arr[30];
int* ptr = arr; // does the same as int* ptr = &arr[0]
C风格数组的这些令人困惑的语义是创建std::array
的原因。
回答你的问题:
void fun(int (&arr)[3])
是一个通过引用获取三元素数组的函数)Check this Stack Overflow question for more details about arrays
答案 1 :(得分:0)