[C++] 객체와 멤버, 변수와 배열

2022. 12. 28. 14:30·C++
728x90
반응형

1.객체의 멤버 호출

1.1 직접 참조 연산자: .

  • 일반 객체가 멤버(변수 or 함수)에 접근하기 위해서 사용한다.

1.2 간접 참조 연산자 : ->

  • 포인터 객체가 멤버(변수 or 함수)에 접근하기 위해서 사용한다.


2. 변수(variable)

소스를 작성하면 데이터를 저장해야 하는 경우가 생기게 된다. 그때 데이터를 저장하는 공간을 변수라고 한다.

변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다.

즉, 변수란 데이터(data)를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있다.


3. 배열(array)

배열이란 같은 타입의 변수들로 이루어진 집합으로 정의할 수 있다.

배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 한다.

C++에서 인덱스는 언제나 0부터 시작하며, 0을 포함한 양의 정수만을 가질 수 있습니다. 

 

배열은 선언에 따라서 1차원 배열, 2차원 배열, 3차원 등등 다차원 배열로도 선언할 수 있다.

하지만 실질적으로는 2차원 배열까지가 많이 사용된다.

(출처:TCP SCHOOL)


4. 일차원 배열

  • 배열명 다음에 구두점 대괄호 []를 쓰며 대괄호 안에 배열의 크기를 나타내는 수를 하나 쓴다.
  • ex) int score[7];
  • 배열명 만드는 규칙은 변수명 만드는 규칙과 동일하다.
  • 배열 선언문에서 사용하는 첨자는 양의 정수이며 배열의 크기이다.
  • score배열은 정수형 자료 7개를 저장할 수 있다.
  • 7개의 공간을 배열의 원소라고 한다.

5. 배열 초기화

5.1 일차원 배열 초기화 방법

  • int score[5]={10, 20, 30, 40, 50}; //int x = 10;
  • 변수 초기화와 달리 원소가 많으므로 중괄호 {}로 묶어 준다.
  • score[0]에는 10, score[1]에는 20 등이 차례대로 초기화 된다.

5.2 문자형 배열 초기화 방법

  • char name[ ] = { 'P', 'i', 'a', 'n', 'o', \0'};
  • 배열 선언과 함께 초기화까지 할 경우 원소의 개수 6은 생략 가능하다.
  • 문자 배열의 마지막 원소는 반드시 널(null) 문자인 '\0'이다.
  • 문자형 배열은 문자열과 관련이 있는데 C언어에서 문자열은 항상 널 문자로 끝나기 때문이다.

문자 배열은 문자열 형태로 초기화할 수도 있다.

  • char name[ ] = "Piano";
  • 널 문자가 자동으로 마지막 원소에 할당된다.
  • 원소의 개수는 6개이다.

5.3 배열 초기화 방법

  • 배열 원소가 초기화 데이터 수보다 많으면 나머지 원소들은 0으로 초기화됨
  • 100개의 원소를 갖는 배열을 2개만 초기화하면 나머지 98개는 모두 0으로 자동 초기화
  • int han[100]={10,20}
  • 배열 원소의 수가 초기화한 데이터 수보다 적으면 “초기화 데이터가 너무 많다”는 에러가 발생
  • int han[2]={10,20,30}
  • error C2078: 이니셜라이저가 너무 많습니다.
배열을 선언과 동시에 초기화한 경우와, 선언 먼저하고 값을 대입한 경우인데 각 원소에는 같은 값이 할당된다.


6. 배열의 이름은 그 배열의 시작 주소

  • piano1의 값과 piano1의 시작 주소가 서로 같기 때문에 배열의 이름은 그 배열의 시작 주소이다.
728x90
반응형
저작자표시 (새창열림)

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

[C++] 템플릿, 포인터와 주소, 범위 지정 연산자 ::  (0) 2023.01.04
[C++] 함수 중첩과 디폴트 인자  (0) 2023.01.02
[C++] const, const 예제  (0) 2022.12.26
[C++] 함수, 기억클래스, 구조체  (1) 2022.09.22
[C++] 매개변수, 인자, 리턴값, 함수, 여러 예제  (0) 2022.09.18
'C++' 카테고리의 다른 글
  • [C++] 템플릿, 포인터와 주소, 범위 지정 연산자 ::
  • [C++] 함수 중첩과 디폴트 인자
  • [C++] const, const 예제
  • [C++] 함수, 기억클래스, 구조체
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (201)
      • Apple (119)
        • iOS (22)
        • visionOS (4)
        • Swift (65)
        • UIKit (2)
        • SwiftUI (20)
        • RxSwift (2)
        • Xcode (4)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로세스
    티스토리챌린지
    메서드
    비동기
    디자인패턴
    Optional
    오블완
    UIKit
    combine
    visionOS
    Xcode
    SWIFT
    제어문
    ios
    프로퍼티 래퍼
    배열
    Initializers
    자바스크립트
    변수
    이니셜라이저
    코딩테스트
    Vision Pro
    연산자
    옵셔널
    운영체제
    클래스
    함수
    swiftUI
    네트워크
    스위프트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[C++] 객체와 멤버, 변수와 배열
상단으로

티스토리툴바