【发布时间】:2016-06-27 13:47:19
【问题描述】:
我将函数void Assign_numbers 传递给void Adding。当我将其更改为指针并对其进行编译时,第一个数组值从number.a 中的void Assign_numbers 返回相同的值。数组中从ptr[1] 开始的另一个值给出了一个完全不同的数字。你能帮我吗,以便数组能够输出其他分配的数字。请不要更改格式。
#include <stdlib.h>
#include <stdio.h>
#define Max 6
struct Numbers
{
double a,b,c,d,e,f;
};
void Adding(struct Numbers *ptr)
void Assign_numbers()
{
struct Numbers number;
number.a=45.78;
number.b=81.45;
number.c=56.69;
number.d=34.58;
number.e=23.57;
number.f=78.35;
Adding(&number);
}
void Adding(struct Numbers *ptr)
{
int i =0;
for(i;i<Max;i++)
{
ptr[i];
printf("%.2f\n",ptr[i]);
}
}
int main()
{
Assign_numbers();
return 0;
}
【问题讨论】:
-
你为什么想到将结构体作为一个数组来访问?你遇到过这样的例子吗?
-
只是一个实验。我正在学习c。
标签: c arrays pointers struct pass-by-reference