call by value

    [C++] 포인터 한방에 이해하기 (Call by Value vs Call by Reference)

    포인터 (Pointer) 포인터 변수 포인터란 "어떤 것을 가리키는 것"을 의미한다. C나 C++ 등의 프로그래밍 언어에서 포인터는 "주소를 가리키는 것"을 뜻하며, 이러한 것을 저장하는 변수를 포인터 변수라고 한다. 프로그래밍에서 포인터가 악명이 높기로 유명하지만, 의외로 단순하니 겁먹을 필요가 없다. 아래 코드를 보자. int a = 10; int* p = &a; a라는 int형 변수를 선언하고 10으로 초기화하였다. p라는 int형 포인터 변수를 선언하고 a의 주소값으로 초기화하였다. 여기서 한가지 짚고 넘어가야 할 것이 있다. & (주소 연산자) 주소 연산자 &를 사용하면 변수에 할당된 메모리 주소를 확인할 수 있다. 참고로 비트 연산자 AND(&)와 모양은 같지만, 주소 연산자는 단항 연산자이고..

    [자료구조] 배열과 클래스 (Array & Class)

    배열 (Array) 배열(Array)은 같은 자료형의 변수가 연속적인 형태로 구성된 구조이다. 각각의 원소에는 순서대로 index가 붙으며, 원소들이 연속적으로 배치되어 있기에 임의의 index에 접근(access)하는데 걸리는 시간복잡도는 O(1)이다. 따라서 배열은 임의 접근(Random Access)가 가능하다. 배열 ADT 객체 - 인덱스와 값 의 쌍으로 구성된 집합. 연산 - create(n) : n개의 요소를 가지는 배열 생성 - retrive(A, i) : A배열에서 i번째 index를 가지는 값 반환 - store(A, i, v) : A배열에 쌍을 삽입 C++에서의 배열 // 만약 배열이 없는 경우 int score1; int score2; ... int score10; // 배열 선언 i..