[編輯]現在我的代碼運行良好。但有人可以解釋爲什麼a通過b = a而不是b = & a?我以爲我必須讓b指向使用&的地址。謝謝。C++指針和數組(複製功能)
代碼:
#include <iostream>
using namespace std;
void myf(double a[]);
int main()
{
double a[]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8};
myf(a);
system("pause");
return 1;
}
void myf(double a[])
{
double * b;
b = a;
cout << "This is a : " << a[0] << " " << a[1] <<" " << a[2] <<" " << a[3] <<" " << a[4] <<" " << a[5] <<" " << a[6] <<" " << a[7] << endl;
cout << "This is b : " << b[0] <<" " << b[1] <<" " << b[2] <<" " << b[3] << " " <<b[4] <<" " << b[5] <<" " << b[6] <<" " << b[7] << endl;
}
你可以發佈你得到什麼樣的錯誤? –
您的函數被聲明爲參數指向雙精度的指針,但您嘗試使用指向數組的指針調用該函數。就像撥打壽司送貨來解決寬帶問題一樣,您只會遇到困惑。 –
將myf(&a,&b);''改爲'myf(a,b);'。附加註釋...'* b = * a'只會分配a的第一個元素到b(不會將數組'a'複製到array'b')。'cout'也一樣(只有第一個元素會被打印出來) – knightrider