“char [] name”和“char name []”之间的区别作为c中的函数参数

时间:2013-11-26 13:14:31

标签: c

定义这样的函数时:

void  myFunction(arguments){
   // some instructions
}

使用char[] namechar name[]作为函数的参数有什么区别。为什么不使用指向char的指针。

3 个答案:

答案 0 :(得分:5)

1 st 之一(char[] name)将无法编译,因为它的语法错误。

函数实现参数定义中的数组子脚本转到(强制)参数的名称。

正确的语法是2 nd

char name[]

示例:

void p(char[]); /* prototype */

void p(char name[]) /* implementation */
{
}

char[] name将被视为无效语法。

答案 1 :(得分:2)

在Java和C#等其他语言中,[]括号的位置只是语法糖,不会以任何方式影响程序。

C,作为一种较旧的语言,没有那种灵活性。必须使用名称后的括号声明数组。

至于何时以及为什么要使用指针,请阅读here

答案 2 :(得分:1)

您将收到编译错误。

0.c:3:14: error: expected ‘;’, ‘,’ or ‘)’ before ‘a’
 int f(char []a){
              ^

编译这样的代码是不可能的:

#include <stdio.h>

int f(char []a){
}

main(){
}