指向数组的元素

时间:2017-07-30 13:08:13

标签: 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 *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");
}

2 个答案:

答案 0 :(得分:1)

问题是您正在使用的参数列表(int k, int *money[k])不是有效的C ++语法。不幸的是,g ++为此产生了一条不太有用的信息。

好消息是你无论如何都不想要这个:它会声明moneyk指向int的数组。你真正想要的只是指向int的指针:

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

aint的数组,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是指向整数的指针