몽상실현개발주의

[따배씨] 14.2 구조체의 기본적인 사용법 본문

Language/C

[따배씨] 14.2 구조체의 기본적인 사용법

migrationArc 2021. 6. 22. 10:18

[따배씨] 14.2 구조체의 기본적인 사용법

따배씨 - 따라하며 배우는 C언어

14강 구조체_1

14.2 구조체 Strucutres 의 기본적인 사용법

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 41

struct person   /* person is a tag of structure */
{
    char name[MAX];
    int age;
    float height;
};

int main()
{
    int flag;   // Receives retur value of scanf()
    
    /* Structre variable */
    
    struct person genie;
    
    /* dot(.) is strucutre membership operator (member access operator, member operater) */

    strcpy(genie.name, "Will Smith");
    //strncpy(genie.name, "Will Smith", MAX);
    
    genie.age = 1000;
    
    // dot(.) has height percedence than &
    flag = scanf("%f", &genie.height);    // &(genie.height)
    printf("%f\n", genie.height);
    
    /* Initialization */
    struct person princess = {"Naomi Scott", 18, 160.0f};
    
    struct person princess2 = {
        "Naomi Scott",
        18,
        160.0f
    };
    
    strcpy(princess.name, "Naomi Scott");
    princess.age = 18;
    princess.height = 160.0f;
    
    /* Designated initializers */
    
    struct person beauty = {
        .age = 19,
        .name = "bell",
        .height = 150.0f
    };
    
    // struct person beauty = {.age = 19, name = "Bell", .height = 150.0f };
    
    /* Pointer to a strucutre variable */
    struct person* someone;
    
    someone = &genie;
    // someone = (struct Person*)malloc(sizeof(struct person)); // and free later
    
    /* Indirect member(ship) opertor (or structre pointr operator) */
    someone -> age = 1001; // arrow(->) operator
    printf("%s %d\n", someone->name, (*someone).age);
    
    /* Strucutre declarations in a function */
    
    struct book
    {
        char title[MAX];
        float price;
    };
    
    /* No tag */
    // 일회성 구조체를 생성
    struct {
        char farm[MAX];
        float price;
    } apple, apple2;
    
    strcpy(apple.farm, "Trade Jeo");
    apple.price = 1.2f;
    
    strcpy(apple2.farm, "Safeway");
    apple2.price = 5.6f;
    
    /* typeof and strucutre */
    
    typedef struct person my_person;
    //typedef 타입을 선언
    
    my_person p3;
    
    typedef  struct person person;
    
    person p4;
    
    typedef struct{
        char name[MAX];
        char nobody[MAX];
    } friend;
    
    friend f4;
    
    return 0;
}

 

 


이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.

http://blog.naver.com/atelierjpro

 

실리콘 밸리의 프로그래머 : 네이버 블로그

안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.

blog.naver.com

http://www.inflearn.com/course/following-c

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com

 

Comments