C 如何将数组传递给函数,对其执行一些操作,然后将其返回到main?

C 如何将数组传递给函数,对其执行一些操作,然后将其返回到main?,c,arrays,C,Arrays,我正在编写一个程序来加密一些数据,为了做到这一点,我需要将一个数组传递给一个函数,然后它必须返回给main。我试图这么做,但一旦执行,我就会收到这样一条消息:“分段错误(核心转储)” 我就是这样做的: void shift3bit(int P[64]) { /*some operations*/ } void main(void) { int P[64]; shift3bit; } 非常感谢您的帮助,我是编程新手。将相关函数称为: shift3bit (P); 不是

我正在编写一个程序来加密一些数据,为了做到这一点,我需要将一个数组传递给一个函数,然后它必须返回给main。我试图这么做,但一旦执行,我就会收到这样一条消息:“分段错误(核心转储)”

我就是这样做的:

void shift3bit(int P[64])
{
   /*some operations*/
}

void main(void)
{
    int P[64];
    shift3bit;
}

非常感谢您的帮助,我是编程新手。

将相关函数称为:

shift3bit (P);
不是


好的,首先是布景演讲。如果你以前从未编程过, 你学错语言了。C是低水平的,你也会花钱 在指针和内存管理上浪费了很多时间 追逐不知名的虫子。Python对于您的第一个用户来说是一个更好的选择 语言它会让你专注于程序及其逻辑,而不是 有点胡闹

至于这个问题,很简单。您正在这样做:

shift3bit;
shift3bit
是引用函数的标识符。当你这么做的时候 这样,从语义上来说,它就像你做了 这:

它一点作用也没有。您要做的是通过调用函数 包括名称后的括号:

shift3bit();
这将调用函数。事实上,你需要通过考试 参数也是:

shift3bit(P);
我猜作为C语言的新手,您只是忘记了包含 括号和参数。这是一个容易犯的错误。我现在就做 然后,我已经编程几十年了

如果您对其中任何一点都不清楚,请返回并回顾一下 教科书的一部分。(是的,即使你转而学习Python作为 推荐使用;这种方式调用函数在许多应用程序中非常普遍
声明性语言。)

void-shift3bit(int-p[64])
void-shift3bit(int-p*)
相同。你正在传递一个指针,只需修改它。它没有解决问题什么问题?您几乎不向我们显示代码和
shift3bit无论如何都是胡说八道。那怎么能通过编译器呢?它应该是
shift3bit(p)不<代码>移位3位@cad:哦,它会通过编译器的。如果你要求的话,你可能会得到一个警告,但它会编译得很好。这句话没什么用。虽然正确,但这并不能解释任何事情。OP认为自己是一名新的程序员。一些解释是恰当的。
shift3bit();
shift3bit(P);