C++ 指向数组的元素

C++ 指向数组的元素,c++,arrays,pointers,C++,Arrays,Pointers,下面是我的代码的混乱版本,它只显示了基本结构。 我只是尝试在函数中使用指向数组元素的指针,但是 我经常 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

下面是我的代码的混乱版本,它只显示了基本结构。 我只是尝试在函数中使用指向数组元素的指针,但是 我经常

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");
}
#包括
#包括
无效支付金额(整数*美元、整数k、整数*货币[k]);
内部主(空)
{
整数美元=180,i=1,a[4]={20,10,5,1};
支付金额(美元、i和a[i]);
返回0;
}
无效支付金额(整数*美元、整数k、整数*货币[k])
{
printf(“功能”);
}
此处:

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);

这里,钱是一个指向整数

< p>的指针。问题是你使用的参数列表(<代码> int k,int *BOOK[K] < /COD>)不是有效的C++语法。不幸的是,g++为此产生了一条不太有用的消息

好消息是你无论如何都不希望这样:它会声明
money
k
指向
int
的指针数组。您实际需要的只是一个指向
int
的指针:

void pay_amount(int *dollars, int k, int *money);

a
int
的数组,
a[i]
是单个
int
,因此
&a[i]
是指向int的指针,
int*
此代码编译。请提供MCVE@ray A调试器对编译器错误没有帮助。@ray A调试器不用于修复编译errors@PuffedRiceCracker完整的错误信息应该包括错误位置,即文件名和行号。非常感谢大家。但我是否错过了每个帖子都应该包含的内容?我认为这篇文章没问题,因为我说明了我的目的,排除了不相关的部分。(是的,我犯了错误,但那是出于无知。)是因为我问了一些太基本的问题吗?