09. C-Programming(Structure)
09. C-Programming(Structure)
[toc]
C Programming 실습9
구조체 기본
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct Car{
int num;
double gas;
};
int main(void)
{
struct Car car1;
car1.num = 10;
car1.gas = 20;
printf("자동차 번호는 %d : 연료량은 %lf입니다.\n", car1.num, car1.gas);
return 0;
}
함수와 구조체
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct Car{
int num;
double gas;
};
// 매개변수에 구조체를 넘겨줄 수 있음
void show(struct Car c);
int main(void)
{
struct Car car1 = {0, 0.0};
printf("번호를 입력하세요.\n");
scanf("%d", &car1.num);
printf("연료량을 입력하세요.\n");
scanf("%lf", &car1.gas);
show(car1);
return 0;
}
void show(struct Car c)
{
printf("자동차 번호는 %d : 연료량은 %lf입니다.\n", c.num, c.gas);
}
포인터와 구조체
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct Car{
int num;
double gas;
};
void show(struct Car *pC);
int main(void)
{
struct Car car1 = {10, 20.5};
car1.num = 30;
car1.gas = 40.1;
show(&car1);
return 0;
}
// 포인터를 사용할 때 ->를 사용한다.
void show(struct Car *pC)
{
// 중요
printf("자동차 번호는 %d : 연료량은 %lf입니다.\n", pC->num, pC->gas);
}
배열과 구조체
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 배열과 구조체 같이 사용
typedef struct Car{
int num;
double gas;
};
int main(void)
{
struct Car cars[3];
// 중요
cars[0].num = 1234; cars[0].gas = 25.5;
cars[1].num = 4567; cars[1].gas = 52.2;
cars[2].num = 7890; cars[2].gas = 20.5;
for (int i = 0; i < 3; i++) {
printf("자동차 번호는 %d : 연료량은 %lf입니다.\n", cars[i].num, cars[i].gas);
}
return 0;
}
구조체의 포인터
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct Car{
int num;
double gas;
struct Car *next; // 구조체의 주소
};
int main(void)
{
struct Car car0;
struct Car car1;
struct Car car2;
struct Car *pcar;
car0.num = 1234; car0.gas = 25.5;
car1.num = 4567; car1.gas = 52.2;
car2.num = 7890; car2.gas = 20.5;
car0.next = &car1;
car1.next = &car2;
car2.next = NULL;
for (pcar = &car0; pcar != NULL; pcar = pcar -> next) {
printf("자동차 번호는 %d : 연료량은 %lf입니다.\n", pcar -> num, pcar -> gas);
}
return 0;
}