帮忙看看啊 ,哪里有问题(C++)

来源:百度知道 编辑:UC知道 时间:2024/05/24 04:21:23
void print(double*p,int n)
{for(int i=0;i<n;i++){
cout<<*p++<<'\t';
}
cout<<'\n';
}
void main()
{double a[9]={22,55,33,11,99,77,66,88,44};
double *p[9];
int i;
for(i=0;i<9;i++)
*p[i]=a[i];
print(p[0],9);
}

for(i=0;i<9;i++)
*p[i]=a[i]; 这句错误!
对指针赋初值只须把数组首地址赋予指针变量!

程序改成这样就可以运行了:
#include<iostream.h>
print(double *p,int n)
{
for(int i=0;i<n;i++)
{
cout<<*p++<<'\t';
}
cout<<'\n';
}
void main()
{
double a[9]={22,55,33,11,99,77,66,88,44};
double *p[9];
int i;
*p=a;
print(p[0],9);
}
我将for(i=0;i<9;i++)
*p[i]=a[i]; 改了一下,因为p表示一个指针,所指向的地址是a[9]的首地址,就没必要一个一个附值了.

#include<iostream>
using namespace std;

void print(double *p,int n)
{
for(int i=0;i<n;i++)
cout<<*(p++)<<'\t';
cout<<'\n';
}

void main()
{
double a[9]={22,55,33,11,99,77,66,88,44},*p;
int i;
p=a;
print(p,9);
}
错误分析:要包含头文件(#include<iostream>);要用命名空间(using namespace std;);你用的是