04.1 복합데이터형 – 배열

배열은 동일한 데이터 유형의 여러 값을 한 행에 저장할 수 있는 데이터 구조입니다.

배열 선언은 세 가지를 선언합니다.

  • 각 요소에 저장될 값의 데이터 유형
  • 배열의 이름
  • 배열 요소의 수
// sample

short month(12)

// short - 데이터형
// month - 배열이름
// 12 - 배열원소 갯수

요소 수가 지정되는 위치는 정수, const와 같은 기호 상수 또는 컴파일 시간에 값이 결정되는 8*sizeof(int)와 같은 상수 표현식이어야 합니다.

프로그램 실행 중에 값이 결정되는 변수는 X

그러나 이 제한은 new 연산자를 사용하여 피할 수 있습니다.

배열은 데이터 유형과 배열의 조합인 복합 데이터 유형입니다.

float chicken(30) → float 유형의 배열

int toto(20) → int 배열

배열 인덱스는 항상 0부터 시작합니다.

#include <iostream>
int main()
{
    using namespace std;
    int yams(3);        // 3개의 원소를 가진 배열 생성
    yams(0) = 7;        // 첫번째 원소에 값을 대입
    yams(1) = 8;
    yams(2) = 6;

    int yamcosts(3) = {200, 300, 50};   // 배열을 생성하고 초기화한다.
    // 배열 초기화가 안된다면 static int yamcosts(3)을 사용할 것

    cout << "Total Potatoes = ";
    cout << yams(0) + yams(1) + yams(2) << endl;
    cout << yams(1) << "pieces packaging is ";
    cout << yamcosts(1) << "won each.\n";
    int total = yams(0) = yams(0) * yamcosts(0) + yams(1) * yamcosts(1);
    total = total + yams(2) * yamcosts(2);
    cout << "Three packages total price is " << total << "won.\n";
    cout << "\nyams array of size is " << sizeof yams;
    cout << "bytes.\n";
    cout << "each element size is " << sizeof yams(0);
    cout << "bytes.\n";
    return 0;
}

총 감자 = 21
8개 포장은 개당 300원이다.
3개 패키지의 총 가격은 4100원이다.

yams 배열의 크기는 12바이트입니다.
각 요소 크기는 4바이트입니다.

결과는 다음과 같습니다!

yams라는 이름의 배열은 배열을 만들고 각 요소를 삽입하고 yamscost는 배열이 선언됨과 동시에 배열의 값을 삽입합니다.

배열 요소의 값이 정의되지 않은 경우 불확실한 상태로 남아 있으며 이전에 위치에 남아 있던 쓰레기가 값으로 사용됩니다.

int sam(4) = {3,5,19,4};	// 올바른 방법
int sam(4);					// 올바른 방법
sam(4) = {4,6,7,3};			// 틀린 방법
sam = toy;					// 틀린 방법


// 모든 배열을 0으로 초기화하는 방법
long totals(300) = {0};
long totals(300) = {};
long totals(300) {};

// 대괄호를 비우면 배열 갯수에 따라 자동으로 설정한다.
short sample() = {1,5,3,2}  // 배열 원소 4개 짜리 sample 배열 생성

하지만 0일 때만 모두 초기화되고, 1이 되면 첫 번째 것만 1로 설정되고 나머지는 여전히 0으로 설정됩니다.