반응형
구조체 , 구조체 포인터, TYPEDEF에 대해 설명하겠다.
1. 구조체는 밑에 있는 그림처럼 키워드 그리고 구조체 이름을 통해 정의한다.
그리고 안에 필요한 정보가 담긴 구조체의 멤버 변수를 적는다.
그 후, 메인 함수에서 구조체 변수를 생성후 (구조체변수.구조체의 멤버 변수)이런 식으로 호출을 한다.
1
2
3
4
5
6
7
|
int main()
{
struct book harry;
harry.title = "harry potter";
harry.author = "J. K. Rowling";
harry.price = 18500;
}
|
cs |
2. 구조체 포인터
구조체 포인터는 구조체와 같이 구조체를 정의 한뒤, 메인함수에서 달라진다.
메인함수에서 구조체 변수를 포인터로 생성한후 변수의 주소값을 포인터 변수에 넣는다.
변수의 주소가 포인터 변수에 있기 때문에, 출력을 해도 포인터 변수의 값이 나온다.
그리고 포인터에 접근하려면 (->) 간접접근 연산자를 이용해야한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
int main()
{
struct book harry;
struct book *narnia;
harry.title = "harry potter";
harry.author = "J. K. Rowling";
harry.price = 18500;
narnia = &harry;
narnia -> title = "narnia";
narnia->author = "C.S.Lewis";
narnia->price = 19500;
printf("%d",harry.price); // 19500으로 출력된다.
}
|
cs |
3. TYPEDEF 키워드
TYPEDEF는 기존의 자료형에 새 이름을 부여하는 것이다.
그런데 코딩을 깊게 배우면 TYPEDEF를 사용하는 이유가 이름을 부여하는게 아니라,
데이터의 자료형을 일괄적으로 바꿔주기 위한것이란걸 알게된다.
1
2
3
4
5
6
7
|
#include <stdio.h>
typedef struct data {
int deposit;
int payment;
int balance;
}Account;
|
cs |
TYPEDEF를 사용해 구조체 별칭을 설정한다.
1
2
3
4
5
6
7
|
int main()
{
Account acc;
acc.deposit = 10000;
acc.payment = 1000000;
acc.balance = 20;
}
|
cs |
그 후 구조체 별칭(Account)로 변수를 선언한다.
그 다음은 (구조체변수.구조체의 멤버 변수)이런 식으로 호출을 하면 된다.
출처: 코딩의 시작 Top school
반응형