用结构成员定义变量

时间:2018-12-05 13:10:31

标签: c arrays structure

我是一个初学者,正在上课。知识水平=非常低。

  

错误是预期的标识符或list [0](和list [1]等的l中的'(')。

void hardcode(count, &list[SIZE]) 
{
    struct family list1 = { "test", "case", 'F', '1', '1', '1', 2500, 2000 };
    list[0] = list1;
    struct family list2 = { "test2", "case2",'M', '4', '4', '2', 5000,1970 };
    list[1] = list2; 
}

我在main()中声明了该结构。struct test list[SIZE],然后调用了此函数并将其传递给计数器和该结构。

1 个答案:

答案 0 :(得分:1)

void hardcode(count, &list[SIZE])在C中不是有效的声明,其原因有二:

  • 您必须指定参数的类型,例如void hardcode(int count, struct test list[SIZE])。 (请注意,int插入countstruct test插入list。)

  • C没有内置引用;您不能使用&来描述参数的类型。传递数组时,它将自动转换为指向其第一个元素的指针,并将其用作对该数组的引用。因此,您可以简单地声明上述函数。 (尽管struct test list[SIZE]声明了一个数组,但当它是一个函数参数时,它会自动调整为具有指向该数组元素的指针的类型。因此,传递数组参数实际上会传递一个指针,并接收一个数组参数实际上接收到一个指针。)