int add_up (int *a, int num_elements);
int main()
{
int orders[5] = {100, 220, 37, 16, 98};
int *p;
p=&orders[0];
printf("Total orders is %d\n", add_up(*p, 5));
这里如果我传递指针有什么问题?指针将指向否。 100的价值。因为100是一个int值,它将转到int * a。该计划应该顺利吗?编辑1:如果我在这里用p代替* p那么它将是订单[0]的地址而不是100的权利吗?但函数int * a想要值100对。如果我错了这个概念并且谢谢,请纠正我。
return 0;
}
int add_up (int *a, int num_elements)
{
int total = 0;
int k;
for (k = 0; k < num_elements; k++)
{
total += a[k];
}
return (total);
}
用以下代码替换您的代码:
#include <stdio.h>
#include <stdlib.h>
int add_up (int *a, int num_elements);
int main()
{
int orders[5] = {100, 220, 37, 16, 98};
int *p;
p=&orders[0];
printf("Total orders is %d\n", add_up(p, 5));
return 0;
}
int add_up (int *a, int num_elements)
{
int total = 0;
int k;
for (k = 0; k < num_elements; k++)
{
total += a[k];
}
return (total);
}
你忘了包括2个标题和add_up(*p, 5)
并删除*
。