[구조체]
[구조체]
하나 이상의 기본 자료형을 기반으로 사용자 정의 자료형을 만들 수 있는 문법 요소
struct Point //point 이름의 구조체 선언
{
int x;
int y;
}
[구조체 변수 선언]
struct point{
int x;
int y;
}p1,p2,p3; //변수 선언1
struct point2{
int x;
int y;
};
int main(void)
{
struct point2 p1,p2,p3;//변수 선언2
p1.x=3;//멤버 접근
struct p4={1,2};//초기화
}
[구조체 배열 선언]
struct Person{
char name[20];
char phone[20];
int age;
};
int main(){
struct Person pArray[3]; //배열 선언
pArray={{"lee","333"},{"kim","123"},{"yeo","aaa"}; //초기화
pArray[1].name="홍길동"; //두번째 요소 접근
return 0;
}
[구조체와 배열 그리고 포인터]
[구조체와 포인터]
#include<stdio.h>
struct Person{
char Name[20];
char phone[20];
};
struct PersonInfo
{
int age;
struct Person * pPer;
}
int main()
{
struct Person man= {"Thomas","345-512"};
struct person* pMan;
pMan=&man;
<구조체 포인터를 선언하여 구조체 변수를 가리킬때>
//구조체 변수를 이용한 출력
printf("name : %s\n",man.Name);
//구조체 포인터를 이용한 간접 접근
printf("name : %s\n",(*pMan).Name);
//구조체 포인터를 이용한 멤버 접근 연산자로 간접 접근 (사용자 정의에서만 사용)
printf("name : %s\n",pMan->Name);
<구조체의 멤버로 포인터 변수가 선언되는 경우>
//구조체 변수를 이용한 출력
PersonInfo manInfo;
manInfo.pPer=&man;
printf("name : %s\n",manInfo.pPer->Name);
}
[구조체 변수와 주소값의 관계]
struct simple{
int data;
int data2;
};
int main()
{
struct simple s={1,2};
printf("address 1:%d\n",&s);
printf("address 2:%d",&(s.data1));
return 0;
}
구조체의 이름과 구조체 첫번째 멤버의 주소값을 대조해 본다면 같은 주소가 나온다
이는 구조체의 이름은 첫번째 멤버의 주소를 나타냄을 알 수 있다.
'C' 카테고리의 다른 글
26장 . 전처리기에 의한 매크로 처리 (0) | 2023.01.10 |
---|---|
23장 . 구조체와 사용자 정의 자료형 2 (0) | 2023.01.10 |
19강.함수 포인터와 void포인터 (0) | 2023.01.08 |
18강 . 다차원 배열 그리고 포인터 (0) | 2023.01.08 |
16장 . 다차원 배열 (0) | 2023.01.08 |