투케이2K

14. (C/C언어) 구조체 (struct) 에 포인터 변수 선언해서 사용자 정보 출력 실시 본문

C

14. (C/C언어) 구조체 (struct) 에 포인터 변수 선언해서 사용자 정보 출력 실시

투케이2K 2021. 1. 30. 10:42

/* =========================== */

[ 개발 환경 설정 ]

​개발 툴 : VisualStudio

개발 언어 : C언어

/* =========================== */

/* =========================== */

[소스 코드]

 

#pragma warning(disable:4996)
#include <stdio.h>

//==== 구조체 선언 실시 ====
struct Info {
    char name[10];
    char addr[10];
    int age;
};

int main() {

    /*[구조체(struct), typedef 기본 구조체 정의 및 출력 실시]
    1. struct - struct Info one_info 형태로 정의합니다
    2. 포인터는 하나의 메모리를 공유해서 사용함으로써 같은 데이터를 사용할 수 있습니다
    */

    struct Info one_info = { "홍길동", "조선", 35}; //일반 구조체 변수값 대입
    printf("이름 : %s, 주소 : %s, 나이 : %d \n", one_info.name, one_info.addr, one_info.age);

    struct Info* two_info; // 구조체 포인트 선언  

    two_info = &one_info; //one_info 메모리 주소를 구하여 two_info에 할당합니다

    strcpy((*two_info).name, "장보고"); // [1] 참조 연산자(*)를 이용하는 방법
    strcpy(two_info->addr, "신라"); // [2] 화살표 연산자(->)를 이용하는 방법
    one_info.age = 18; // [3] 구조체 변수을 이용한 직접 수정  

    printf("이름 : %s, 주소 : %s, 나이 : %d \n", one_info.name, one_info.addr, one_info.age);

    return 0;
}

/* =========================== */

[결과 출력]

이름 : 홍길동, 주소 : 조선, 나이 : 35

이름 : 장보고, 주소 : 신라, 나이 : 18

/* =========================== */

/* =========================== */

[요약 설명]

1. struct - struct Info one_info 형태로 정의합니다

2. 포인터는 하나의 메모리를 공유해서 사용함으로써 같은 데이터를 사용할 수 있습니다

/* =========================== */

반응형
Comments