검색결과 리스트
글
<구조체란?>
하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형이다. 그룹화 할 때 같은 자료형을 가진 변수들을 묶어 그룹화할 수 있고, 서로 다른 자료형을 가진 변수들을 묶어 그룹화 할 수 있다.
<구조체의 구조>
struct point
{
int x; // 구조체 멤버 변수
int y;
}
구조체 키워드 struct를 사용해서 구조체의 이름은 point로 하였다.
<구조체 변수 선언>
구조체 변수 선언은 두 가지 방법이 있다.
1. 구조체 정의와 구조체 변수 선언을 동시에 하는 방법
struct point
{
int x;
int y;
} p1, p2, p3; // 구조체 변수
2. 구조체 정의와 구조체 변수 선언을 따로 선언하는 방법
struct point
{
int x;
int y;
};
int main()
{
struct point p1, p2, p3; // 구조체 변수
return 0;
}
<구조체 멤버 변수 접근>
구조체 변수로 멤버 변수에 접근하는 법은 구조체 변수를 사용하면 된다.
이때 접근 연산자는 "."이다.
struct point
{
int a;
double b;
};
int main()
{
struct point p1;
scanf("%d %lf", &p1.a, %p1.b);
printf("%d \n", p1.a);
printf("%d \n", p1.b);
return 0;
}
이때 구조체 변수 p1으로 구조체 멤버 변수 a와 b에 각각 접근하고 있다.
<구조체 변수의 초기화>
struct p
{
int x;
int y;
}
int main()
{
struct p p1={10,20}; // p1이라는 구조체 변수안에 할당된 x, y 구조체 멤버 변수에 10, 20을 저장한다.
}
※ 주의사항
struct point p1;
p1={10,20}; // 이렇게 구조체 변수를 초기화 할때 구조체 변수 선언과 초기화를 따로하면 에러난다.
↓ ↓ ↓ ↓
struct point p1;
p1.x=10; // 구조체 멤버 변수로 직접 접근해야지 에러가 안난다.
p1.y=20;
<구조체 변수의 복사>
struct point
{
int x;
int y;
};
struct point p1={10,20};
struct point p2={0,0};
p2=p1; // 구조체 변수의 복사
printf(%d %d \n", p2.x, p2.y); // 10, 20출력
구조체 변수끼리 연산을 가능할까?
p1+p2 // 불가능 하다. 구조체 변수는 대입 연산만 가능함!
'Programming > C' 카테고리의 다른 글
C언어 - 구조체의 재정의 Typedef (0) | 2016.05.28 |
---|---|
C언어 - 중첩 구조체 (0) | 2016.05.27 |
C언어 - void형 포인터 (0) | 2016.05.25 |
C언어 - main()함수에 인자가 있을 때 (0) | 2016.05.24 |
C언어 - 주소를 반환하는 함수 (0) | 2016.05.23 |
RECENT COMMENT