구조체와 포인터
: 구조체를 만들고 구조체 포인터 변수를 만들어 구조체의 주소를 할당해주면 구조체처럼 사용할 수 있다.
#include <stdio.h>
#include <string.h>
struct student {
int number;
char name[10];
double grade;
};
int main(){
struct student s1 = { 24, "Kim", 4.3 };
struct student* p;
p = &s;
printf("학번=%d 이름=%s 학점=%f \n", s.number, s.name, s.grade);
// 학번=24 이름=Kim 학점=4.3
printf("학번=%d 이름=%s 학점=%f \n", (*p).number, (*p).name, (*p).grade);
// 학번=24 이름=Kim 학점=4.3
}
-> 연산자
: 매번 (*p).를 써서 해당 구조체에 접근해야하는 번거로움을 줄이기 위해서 ->를 사용해서 포인터 변수의 구조체 멤버를 참조할 수 있다.
printf("학번=%d 이름=%s 학점=%f \n", (*p).number, (*p).name, (*p).grade);
// 학번=24 이름=Kim 학점=4.3
printf("학번=%d 이름=%s 학점=%f \n", p->number, p->name, p->grade);
// 학번=24 이름=Kim 학점=4.3
이렇게 동일한 효과를 얻을 수 있다.
'2학년 2학기 > c언어' 카테고리의 다른 글
11-8장 열거형 (0) | 2024.11.12 |
---|---|
11-7장 공용체 (1) | 2024.11.12 |
11-5장 const struct (0) | 2024.11.11 |
11-4장 구조체와 함수 (0) | 2024.11.11 |
11-3장 구조체 배열 (0) | 2024.11.11 |