(c++) 배열, 구조체, 포인터 (0주차)

2021. 11. 8. 02:52C++

728x90

배열, 구조체, 포인터는 C++의 세 가지 복합 데이터 형이다. 

배열은 동일한 데이터형에다가 여러 개의 값을 하나의 데이터 객체에 저장할 수 있으며

인덱스를 통해 인덱스 내 값에 접근할 수 있다.

 

 

구조체는 배열과 달리 데이터형이 다른 여러 개의 값을 하나의 데이터 객체 안에 저장한다.

도트(.) 멤 머 연산자를 사용하여 개별적인 멤버에 접근한다. 구조체는 사용하기 전에 구조체를 어떻게 설계할지를

미리 생각해둬야된다.  그러면 구조체 템플릿 안에 어떤 멤버를 넣을 것인지 정의한다. 그러면 구조체가 완성이 되고

사용자의 의도와 맞게 사용할 수 있습니다.

 

예를 들어 자동차에 성분에 대한 값을 구조체의 템플릿으로 하고 구조체를 만들어본다고 하면 

 

#include <iostream>
struct car
{
    char car_name[20];
    int price;
};
typedef struct k_car
{
    char car_name[20];
    int price;
};

int main()

{

    using namespace std;
    car car1 = {
        "porsche",
        200000
    };
    struct car car2 {
        "Benz",
        60000
    };

    k_car hyundai{
        "gv80",
        70000
    };

    cout <<"car1의 name : "<< car1.car_name<<'\n';
    cout << "car1의 price : " << car1.price << '\n';


    cout << "car2의 name : " << car2.car_name << '\n';
    cout << "car2의 price : " << car2.price << '\n';


    cout << "hyundai의 name : " << hyundai.car_name << '\n';
    cout << "hyundai의 price : " << hyundai.price << '\n';

    return 0;
}

직접 실행도 해보시는거 추천함  typedef를 써서 구조체를 만들게 되면 사용할 때 struct를 안 쓰고 사용 가능함 

 

이제 포인터 

포인터는 주소를 저장하도록 설계된 변수입니다. 포인터는 현제 자신이 저장하고 있는 주소를 지시하고 있다. 

포인터는 선언할때 반드시 어떤 데이터형의 객체를 가리키는지 함께 지정해야 된다. 그렇지 않으면 오류가 뜨게 된다.

그리고 포인터는 선언 시 간접 참조 연산자(*)를 적용하면 포인터가 지시하는 주소에 저장되어 있는 갑을 얻을 수 있다.

 

int a=10; //int 형 a를 선언

int * b = &a; //b라는 포인터에 a의 주소 값을 지시

cout<<*b;  // b가 가리키는 값을 출력 

 

쉽게 이렇게 생각하면 될거 같음 

 

 

마지막 문자열 

문자열은 널(NULL) 문자로 끝나는 연속된 문자들이다. 

문자열은 큰따옴표로 묶여서 문자열 상수로 나타낼 수 있다. 문자열은 char형의 배열에 저장할 수 있다. 

 

문자열은 사용하기전에 헤더 파일을 반드시 포함시켜야 한다. 

#include <cstring> 또는 #include <string.h> 둘 중에 편한 걸로 사용하면 됨

사용법은 간단하다

string str1;

str1="Hello World";

하게 되면 str1이라는 배열에 'H', 'e', 'l', 'l', 'o', '(공백)', 'W', 'o', 'r', 'l', 'd'가 각 배열의 한 칸씩 할당을 받는다. 이것도 직접 해보는 것을 추천한다. 

 

이 포스팅은 심화내용이 아닌 겉핥기 식으로 찍먹 하라고 만든 겁니다. 심화 내용은 나중에 하나씩 해드리겠습니다.

긴 글 읽어 주셔서 감사합니다. ^~^

 

 

728x90

'C++' 카테고리의 다른 글

C++ String/STL  (0) 2021.12.01
C++ 수학함수 #include <math>  (0) 2021.11.15
C++ 기본코드  (0) 2021.11.14