结构体指针作为参数

结构体指针作为参数,第1张

for(num_get=0;num_get>num;num_get++)

这个循环条件应该改为

for(num_get=0;num_get<num;num_get++)

就和普通指针一样使用,只不过它是结构体数组。

typedef struct Student

{

char name[10] ;

int age ;

}Student;

#define LEN 10

//print all Student infomation

void fun(Student pStu,int len)

{

int i ;

for(i = 0 ;i < len ;++i)

{

printf("%s\t%d",pStu[i]name,pStu[i]age) ;

}

}

int main ()

{

Student stu[LEN] ;

fun(stu,LEN) ;

}

希望能帮助到你

直接将函数参数,定义为结构体指针类型即可。

然后传入对应结构体数组名,或者结构体变量的地址。

比如

struct test {int a;};

struct test t[100];

定义

void func(struct test p){}

调用

func(t);

C语言中,所有的变量都存储在内存中,可以通过&运算符获得变量的内存地址,函数调用时,只需要把普通变量前加上&符号,就可以达到传递变量地址的目的。

例如:

定义一个结构体类型

struct Yearmonthday

    int year, month, day;

};

定义相关函数,参数类型指定为结构体类型指针

void input(struct Yearmonthday p1) //函数形参p1是结构体指针类型

{

    printf("请输入年,月,日:");

    scanf("%d,%d,%d",&p1->year,&p1->month,&p1->day);

}

在主函数中定义一个结构体变量,调用相关函数,传递变量地址

int main()

    struct Yearmonthday ymd;

    input(&ymd); //传递变量地址,以便带回数据

    printf("date=%d/%d/%d\n", ymdyear, ymdmonth, ymdday ); //输出结果

    return 0;

}

最简单的方法是在CMainForm中定义一个ball的变量,这样只需要在CMainForm的函数中向线程传递this指针,通过this指针访问balll的变量,进而访问ball的成员函数 使用这种方法也就不需要定义新的结构体了 struct XXX ;XXX A

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/13494293.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存