여기에서 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 : * non portable * 솔루션 (GNU의'glibc' 사용)에 대해서는 제 대답을 참조하십시오. – alk