C ++将一个struct数组作为函数参数传递

时间:2016-06-12 19:39:09

标签: c++ function struct parameters

C ++:下面显示的代码和功能声明和定义中同时省略关键字struct的区别是什么 - 代码似乎在两种方式都相同?

#include <iostream>
#include <string>

struct student{
            int age;
            int number;
        };

void printme( struct student m[]);    // if 'struct' is omitted the code works as fine

int main()
{        
    student s[3];
    s[0].age = 10;
    s[0].number = 333;

    printme(s);

    return 0;
}

void printme( struct student m[]){
        printf("George age and number: %d, %d \n", m[0].age, m[0].number);
    }

2 个答案:

答案 0 :(得分:0)

请注意,您使用的是link here不是 ,所以这里没有区别,您可以同时使用这两个选项。

检查一下:了解更多信息。

答案 1 :(得分:0)

这来自C,你必须指定struct(或使用typedef)。在C ++中,只要你没有对结构和对象使用相同的id,就没有区别。请不要这样做,但如果你真的想这样做,那么你需要写一下,例如struct student代表类型,student代表对象(如果你真的想让所有人混淆,那么不一定是学生类型)。基本上,C +编码标准倾向于建议跳过结构,并且从不对结构和对象具有相同的id。