在这我会有4,5,6,25的输出。 如何以单次尝试打印结构中的所有成员,而不是每次访问结构的单个成员。 就好像我需要输出为[4 5 6]并且年龄为25. 请帮忙!如何在单次尝试中打印结构中的所有值?
#include<stdio.h>
typedef struct person
{
int row[3];
int age;
} PERSON;
int main()
{
PERSON p;
PERSON *pptr=&p;
pptr->row[0] = 4;
pptr->row[1] = 5;
pptr->row[2] = 6;
pptr->age = 25;
printf("%d\n",pptr->row[0]);
printf("%d\n",pptr->row[1]);
printf("%d\n",pptr->row[2]);
printf("%d\n",pptr->age);
return 0;
}
没有办法,而无需访问每个成员的打印。不过,你可以写一个函数来帮助你做到这一点。 – nhahtdh
您也可以编写一个抽象函数,通过传递指向结构的指针和指向结构中成员类型和偏移量的表的指针来为结构类型执行此操作。但除非你真的需要更抽象的版本,否则我会用simonc的答案去做。 –
@nhahtdh:对于非移动*解决方案(使用GNU的'glibc'),请参阅我的答案。 – alk