728x90
반응형
SMALL
#include <stdio.h>
struct score{
int kor,eng,math;
};
int main(void){
struct score yuni = {90,80,70};
struct score *ps = &yuni;
printf("kor : %d\n", (*ps).kor);
printf("eng : %d\n", ps -> eng);
printf("math : %d\n", ps -> math);
return 0;
}
### 구조체 정의
- `struct score`는 세 과목의 점수를 정수형으로 저장하는 구조체입니다. 각 멤버 변수 `kor`, `eng`, `math`는 국어, 영어, 수학 점수를 나타냅니다.
### `main` 함수
- `struct score yuni = {90, 80, 70};`를 통해 `score` 구조체 타입의 변수 `yuni`를 선언하고 초기화합니다. 여기서 `yuni`는 국어 90점, 영어 80점, 수학 70점의 점수를 가집니다.
- `struct score *ps = &yuni;`를 통해 `yuni` 변수의 주소를 저장하는 포인터 `ps`를 선언하고 초기화합니다.
- 첫 번째 `printf`문에서는 `(*ps).kor`를 사용하여 `ps`가 가리키는 구조체의 `kor` 멤버에 접근합니다. 이는 구조체 포인터를 역참조하여 멤버에 접근하는 방식입니다.
- 두 번째와 세 번째 `printf`문에서는 `ps -> eng`와 `ps -> math`를 사용하여 `eng`와 `math` 멤버에 접근합니다. 이는 구조체 포인터를 통해 멤버에 직접 접근하는 더 간결한 방식입니다. `->` 연산자는 구조체 포인터를 역참조하고 멤버에 접근하는 작업을 단일 단계로 수행합니다.
### 실행 결과
이 코드를 실행하면 다음과 같은 출력을 얻습니다:
```
kor : 90
eng : 80
math : 70
```
728x90
반응형
LIST
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 17) 다른 구조체를 멤버로 갖는 구조체 사용 (0) | 2024.09.29 |
---|---|
chapter 17) 구조체를 변환하여 두 변수의 값 교환 (1) | 2024.09.28 |
chapter 17) 공동체를 사용한 학번과 학점 데이터 처리 (0) | 2024.09.26 |
chapter 17) typedef 를 사용한 자료형 재정의 (0) | 2024.09.25 |
chapter 16) 3개의 문자열을 저장하기 위한 동적 할당 (0) | 2024.09.24 |