C++ 이론(2)

2025. 12. 1. 23:59·C++

Pointer

  • 포인터: 어떤 변수의 메모리상의 주소값을 저장하고 있는 것
  • 일반 변수: 일반적인 데이터(상수)를 저장할 수 있는 기억장소
  • 포인터 변수: 일반 변수의 주소값을 저장할 수 있는 기억장소, 일반적으로 포인터라고 함
  • datatype: 저장하고 있는 주소값의 변수형과 동일
    ex) int *, float *, double * (*: 아스트리크)
  • 주소값 저장하는 법: (datatype) *(pointer name) = &(variable); (&: 엠프센트)
    ex) int *pnum = #
  • Dereference(역참조): 주소를 통해 포인터가 변수 값에 접근하는 것

+추가 - 함수가 호출될 때 매개변수에 인자를 어떤 방식으로 넣어줄건지에 대한 개념

  • Call by address: 주소에 의한 전달, 포인터가 가리키는 주소값의 변수
  • Call by value: 값에 의한 전달, 저장된 상수
  • Call by reference: 참조에 의한 전달, 주소값
  • Reference(참조자): 할당된 메모리 공간의 둘 이상의 이름을 붙이는 것(별명같은 것)
  • int *ptr = # //num의 주소값을 포인터 변수 ptr에 저장해라! int &num2 = num1; //num1에 대한 참조자 num2를 선언해라!

Array

Basic of array

  • array(배열): 같은 datatype의 변수들을 연속적으로 저장할 수 있는 변수의 연속 -> 변수들은 인접한 메모리 지역에 연속적으로 저장됨 -> 이 연속적인 변수가 저장된 메모리 = aaray
  • array declaration: (datatype) (array name)[i-th element]
    ex) int myarr[5] = {1,2,3,4,5};
  • [] operator 안에는 있는 숫자의 배열 사이즈를 결정
  • size of array: (number of element)*(size of element)
    ex) int arr[5]; 는 int 하나당 4byte이고 이것이 5개 있으니 size of array은 20bytes
  • 보통은 size를 const로 고정시켜 사용하기도 함
const int SIZE = 5; 
int arr[SIZE]; 
  • subscripts(array의 순서): 0부터 시작, 마지막은 n-1
  • 많은 문제에서 array를 입력 받을 때 for문을 많이 활용
    int arr[5];
    for(int i=0; i<5; i++) {
      cin << arr[i];
    }

 

Array symbol

  • array symbol: 배열을 호출하면 그 배열의 첫번째 element의 주소값을 반환, *arr 면 첫번째 element를 반환
  • 매개변수로 배열을 받고 싶을 때: int arr[] or int *arr
  • * *arr[i] == *(arr+i) *
  • arr는 그 배열의 첫번째 주소이기 때문에 그 주소에 i만큼 더한 주소값은 arr[i]의 주소값과 같아지기 때문

 

Array operation

  • Find operation
    1. start index from the starting point
    2. Jump into loop
    3. check whether the element is k. If true, return the index
    4. Increase index and go back to the loop condition
  • Insert operation
    1. shift elements after i-1 right
    2. store k value at the i-th space
  • Delete operation
    1. shift elements from index i+1 one-space left
    2. decrease the array length

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

C++ 이론(5)  (0) 2025.12.02
C++ 이론(4)  (0) 2025.12.02
C++ 이론(3)  (0) 2025.12.02
C++ 이론(1)  (0) 2025.11.25
'C++' 카테고리의 다른 글
  • C++ 이론(5)
  • C++ 이론(4)
  • C++ 이론(3)
  • C++ 이론(1)
choisio2
choisio2
sio2-dev 님의 블로그 입니다.
  • choisio2
    SiO2 for Developer
    choisio2
  • 전체
    오늘
    어제
    • 분류 전체보기 (46) N
      • TAVE-16th (14)
      • BDA-11th (16)
      • C++ (5)
      • 개인 프로젝트 (4)
      • 백준 (4) N
      • 컴퓨터 그래픽스 (1)
      • 잡담 (1)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 링크

    • github.com/choisio2
  • 공지사항

  • 인기 글

  • 태그

    C++
    calculator
    데이터분석모델링
    kotlin
    geminicli
    백준1463
    playconsole
    알고리즘스터디
    코테
    데시벨측정
    BDA
    KakaoOauth
    백준
    AI시대
    BDAI
    viewpager2
    kotin
    SpotifyAPI
    polling
    androidstudio
    frontend
    spotify
    알고리즘
    프론트엔드
    개발자
    코딩테스트
    개발자미래
    바이브코딩
    BDA #데이터분석모델링
    Tave
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
choisio2
C++ 이론(2)
상단으로

티스토리툴바