본문 바로가기
2학년 2학기/c언어

11-6장 구조체와 포인터

by kkkkk1023 2024. 11. 11.

구조체와 포인터

: 구조체를 만들고 구조체 포인터 변수를 만들어 구조체의 주소를 할당해주면 구조체처럼 사용할 수 있다.

 

#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