coding/C언어

구조체를 가리키는 포인터

codingdoeun 2021. 11. 19. 14:59

내가 제일 싫어하는 부분이다.

아직 완벽히 이해하지 못했다.

 

 

#include<stdio.h>

struct date {
    int month;
    int day;
    int year;
};

struct student {
    int number;
    char name[20];
    double grade;
    struct date* dob;
};

int main(void)
{
    struct date d;
    struct student s;
    s.dob = &d;
    //구조체 변수 s의 멤버인 포인터 dob에 구조체 d의 주소를 대입하였다.
    printf("학번을 입력해주세요: ");
    scanf_s("%d", &s.number);
    printf("이름을 입력해주세요: ");
    scanf_s("%s", s.name);
    printf("학점을 입력해주세요: ");
    scanf_s("%f", &s.grade);

 

//이부분 왜 연결이 안되지? 

 


    printf("학번: %d\n", s.number);
    printf("이름: %s\n", s.name);
    printf("학점: %f\n", s.grade);
    printf("생년월일: %d년 %d월 %d일\n", s.dob->year, s.dob->month, s.dob->day);

    return 0;
}

 

 

벡터연산 프로그램

 

#include<stdio.h>

struct vector {
    float x;
    float y;
};
struct vector get_vector_sum(struct vector a, struct vector b);

int main(void)
{
    struct vector a = { 2.0, 3.0 };
    struct vector b = { 5.0, 6.0 };
    struct vector sum;

    sum = get_vector_sum(a, b);
    printf("벡터의 합은 (%f, %f)입니다.\n", sum.x, sum.y);

    return 0;
}

struct vector get_vector_sum(struct vector a, struct vector b)
{
    struct vector result;
    
    result.x = a.x + b.x;
    result.y = a.y + b.y;

    return result;
}