ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++ 문법] 구조체
    프로그래밍/C++ 2019. 4. 4. 23:42

    C++ 문법

     

    Struct

     

      개념부분은 내용을 조금씩 추가 할 예정입니다.

     

     

    개념

     

     구조체는 관련있는 변수들을 모아서 하나의 새로운 변수 타입을 만들어주는 기능이다. 쉽게말해 사용자 정의 변수타입이라고 할 수있다.

     

     

    배열과 구조체의 공통점

     

    1. 데이터 집합이다.

    2. 연속된 메모리 블럭에 할당된다.

    - 따라서 structname 변수명 = {}; 와 같이 선언하면 구조체 안에 변수를 모두 0으로 초기화가 가능하다.

     

     

     

     

    문법

     

    <생성시>

    sturct 구조체명 {}; 

     

    <선언시>

    구조체명 변수명 

     

    <구조체안의 변수 사용시>

    구조체명.변수명 

     

    코드

    : 클래스의 멤버변수 출력해보기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    # include <iostream>
     
    #define NAME_SIZE 32
     
    using namespace std;
     
    struct Student
    {
        char strname[NAME_SIZE];
        int iNumber;
        int iKor;
        int iEng;
        int iMath;
        int iTotal;
        float fAvg;
    };
     
    int main()
    {
        Student Sstudent = {}; //모든 멤버변수 0으로 초기화
        Student SstudentArr[100= {};
     
        Sstudent.iKor = 100;
        strcpy_s(Sstudent.strname, "김현우");
        
        cout << "이름 : " << Sstudent.strname << endl;
     
     
     
        return 0;
    }
     
    cs



    우선 #define 을 통해서 상수를 정의했는데, 반복적으로 같은 크기를 사용할 상수들은 이렇게 정의를 해놓는 습관을 들이는게 좋습니다. 예를들어 계속해서 100의 크기를 사용하는 배열을 사용하다가 이 배열의 크기를 바꿔야 하는 상황이 오면 #define 의 크기만 바꿔주면 편하니까요 ~

     

    본론으로 넘어가서 이 구조체는 아주 ~ 간단한 구조체입니다. 구조체 안에는 모든 자료형의 변수를 선언 할 수있어요. 저렇게 선언을 하고 main에서 선언과 동시에 초기화를 해주었습니다. 이때 방식이 배열과 아주 유사하죠. int arr[100] = {}; 이런느낌 ? 그리고 배열로 선언도 가능합니다.

     

    멤버변수에 접근을 할때에는 접근지정자 "." 를 사용합니다. 그리고 strcpy_s 의 설명은 여기에 있구요. 출력할떄에도 물론 "." 을 사용해서 원하는 멤버변수를 출력합니다 ~

     

     

    '프로그래밍 > C++' 카테고리의 다른 글

    [C/C++] C++ STL Stack 기본 사용법 및 예제  (0) 2019.08.22
    [C/C++] C ++ STL Queue 기본 사용법 및 예제  (0) 2019.08.21
    [C++ 문법] 참조자형  (0) 2019.04.04
    [C++ 문법] Nullptr  (0) 2019.04.03
    [C++ 문법] Template  (0) 2019.04.02

    댓글

Designed by Tistory.