以下是我的代码的混乱版本,仅显示基本结构。 我只是试图在函数中使用指向数组元素的指针 我经常得到
C:\Users\whale\Desktop\20_Pay2.cpp:4:45: error: expected ',' or '...' before 'money'
但我仍然不知道我错过了什么。任何帮助表示赞赏!
#include<stdio.h>
#include<stdlib.h>
void pay_amount (int *dollars, int k, int *money[k]);
int main(void)
{
int dollars=180, i=1, a[4]={20,10,5,1};
pay_amount (&dollars, i, &a[i] );
return 0;
}
void pay_amount (int *dollars, int k, int *money[k])
{
printf("functions");
}
答案 0 :(得分:1)
问题是您正在使用的参数列表(int k, int *money[k]
)不是有效的C ++语法。不幸的是,g ++为此产生了一条不太有用的信息。
好消息是你无论如何都不想要这个:它会声明money
是k
指向int
的数组。你真正想要的只是指向int
的指针:
void pay_amount(int *dollars, int k, int *money);
a
是int
的数组,a[i]
是一个int
,因此&a[i]
是指向int int *
的指针
答案 1 :(得分:0)
这里:
pay_amount (&dollars, i, &a[i] );
您传递的第三个参数是指向整数的指针。 但是在你的函数声明中,你有:
void pay_amount (int *dollars, int k, int *money[k]);
int *money[k]
作为函数参数似乎不正确。
您可能想要这样做:
void pay_amount (int *dollars, int k, int *money);
这里,money是指向整数的指针