如题,*处会报错,换成取址符也会报同样的错误,
代码如下(示例):
#include<iostream>
using namespace std;
void swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
int main()
{
int a=3,b=8;
cout<<"before swaping.....\n";
cout<<"a="<<a<<",b="<<b<<endl;
swap(a,b);
cout<<"after swaping.....\n";
cout<<"a="<<a<<",b="<<b<<endl;
}
对于传递数组的问题,可以考虑在函数中使用指针作为形参,通过指针来操作数组。具体步骤如下:
1.函数原型中定义一个指针类型的形参,用于接收数组的地址,例如:
void bubbleSort(int* arr, int size);
2.在函数内部使用指针来操作数组元素,例如使用*arr表示数组第一个元素的值:
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (*(arr + j) > *(arr + j + 1)) {
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
3.在主函数中进行调用时,传递数组名即可,不需要再取地址或使用指针符号:
int arr[] = {5, 3, 2, 8, 1};
int size = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, size);
通过这种方法,可以正确地传递数组并使用指针操作数组元素,避免了因为数组和指针的传递混淆导致的错误。
调用的时候应该直接写数组名字即可,
还有你 这个函数最后是不是多了个分号啊
void bubblesort()
{
.........
}; 这里应该不要分号吧
重建项目解决了……