gpt4 book ai didi

c - 通过引用传递 int/char 数组的错误/警告

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:26 24 4
gpt4 key购买 nike

我正在开发一个程序,尝试通过引用传递参数。我正在尝试通过引用传递一个 2D int 数组和一个 1D char 数组。

函数原型(prototype):

void foo (int* (&a)[2][2], char* (&b)[4])

函数调用:

foo (a, b);

但是,当我在 gcc 上使用 -ansi-Wall 标志编译代码时,出现以下错误:

foo.c: At top level:
error: expected ‘)’ before ‘&’ token
error: expected ‘;’, ‘,’ or ‘)’ before ‘char’
foo.c: In function ‘main’:
error: too many arguments to function ‘foo’

我已经剥离了程序的其余代码,并专注于引发错误的位。我在 StackOverflow 上四处搜索并尝试了不同的方法来传递参数,但它们似乎都不起作用。 ( I took this way of passing parameters from the discussion on StackOverflow here .)

你能告诉我哪里错了吗?

最佳答案

引用不是 C 语言的一部分,您尝试使用的语法仅适用于 C++。

顺便说一句,char* (&b)[4] 将是对包含四个 char* 的数组的引用,它是 char*< 的一维数组,不是 char 的一维数组。

通常,一个采用 int 的二维数组和 char 的一维数组的函数将被声明为

void foo(int a[][2], char b[]);

这与:

void foo(int (*a)[2], char *b);

关于c - 通过引用传递 int/char 数组的错误/警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2618730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com