C语言指针的一个问题
代码如下
#include <stdio.h>
void copy_arr(double target1[], double source[], int num1);
void copy_ptr(double *target2, double *source, int num2);
void copy_ptrs(double*target3, double* source, double*end);
void print(double arr[]);
int main()
{
double source[5] = { 1.1,2.2,3.3,4.4,5.5 };
double target1[5];
double target2[5];
double target3[5];
copy_arr(target1,source,5);
copy_ptr(target2, source, 5);
copy_ptrs(target3, source, source + 5);
print(target1);
print(target2);
print(target3);
return 0;
}
void copy_arr(double target1[], const double source[], int num1)
{
for (int i = 0; i < num1; i++)
{
target1[i] = source[i];
}
}
void copy_ptr(double* target2, const double* source, int num2)
{
for (int i = 0; i < num2; i++)
{
*(target2 + i) = *(source + i);
}
}
void copy_ptrs(double* target3, const double *source, const double*end)
{
for (int i = 0; i < end-source; i++)
{
*(target3 + i) = *(source + i);
}
}
void print(double arr[])
{
for (int i = 0; i < 5; i++)
{
printf("%g", arr[i]);
}
}
运行后出现一个里面什么都没有的黑色窗口,然后过一会儿就关闭了