반응형 Programming123 LV2 C++ 값에 의한 호출(Call by Value)과 참조에 의한 호출(Call by Reference) [lv2/C++] 값에 의한 호출(Call by Value)과 참조에 의한 호출(Call by Reference) 일반적으로 함수에 값만 전달하는 경우가 있는 반면에 값을 다시 가져와서 사용해야 하는 경우가 있다. 계산되는 결과를 가져오는 경우 함수의 반환값을 이용할 수 있지만 반환값은 한 형태의 값만 반환할 수 있기 때문에 여러 개의 값을 동시에 사용하는 경우 이용하기 힘들다. 여기서 값만 전달 하는 경우를 값에 의한 호출 (Call by Value)이라고 하고 매개변수의 주소값을 이용해서 전달하는 경우를 참조에 의한 호출(Call by Reference)이라고 한다. 두개의 값을 바꾸는 프로그램을 통해 비교해 보도록 하자. 값에 의한 호출 (Call by Value)#include using name.. 2022. 9. 13. LV2 C++ 함수(function) 사용 기초 [lv2/C++] 함수(function) 사용 기초 함수(function)란 특정한 작업을 수행하는 독립적인 코드의 집합이라 말 할 수 있다. 함수는 반복되는 기능을 하나로 묶어 프로그램을 모듈화 시킬 수 있고 함수 단위로 프로그램 작성 시 전체 프로그램을 논리적으로 구조화 시킬 수 있다는 장점이 있다. 함수의 기본적인 구조는 아래와 같다. 함수는 필요에 따라 호출하여 사용할 수 있는데 함수 내에서 처리한 결과를 호출한 부분에 돌려줄 수 있다. 이 때 반환되는 자료형에 따라 정수, 실수, 문자열 등을 반환 받거나 void로 선언하여 반환하지 않도록 설정할 수 있다. 인자의 목록에 넘기고 싶은 값이나 변수를 적어 함수의 블록안에서 사용할 수 있다. 간단한 프로그램으로 함수를 사용해보자.#include u.. 2022. 9. 13. LV2 C++ 동적 할당(Dynamic Allocation) [lv2/C++] 동적 할당(Dynamic Allocation) C와 C++에서는 포인터를 사용하여 메모리를 직접 관리할 수 있다. 앞에서 설명한 것과 같이 포인터는 메모리상의 주소를 가리키고 있는데 포인터를 이용하여 런타임(프로그램이 실행되는 동안)시 이름이 없는 메모리를 할당할 수 있다. C에서는 malloc()과 free()함수를 통하여 메모리를 할당하거나 해제할 수 있지만 C++에서는 new와 delete연산자를 통해 메모리를 관리할 수 있다. 물론 C++은 C를 기반으로 하기 때문에 malloc()과 같은 함수도 사용이 가능하지만 이번에는 new와 delete를 이용한 동적 메모리 할당과 해제를 할 것이다. 기본 형식은 다음과 같다.typeName *pointerName = new typeNam.. 2022. 9. 8. LV2 C++ 포인터(Pointer) 사용 [lv2/C++] 포인터(Pointer) 사용 포인터가 어떤 동작을 하는지 이해가 되었다는 가정하에 글을 작성하겠다.포인터를 처음 접하는 사람이라면 이전 글을 읽어본 후 이 글을 읽길 바란다.[lv2/C++] 포인터 Pointer 우리는 변수가 메모리상 어딘가에 저장되고 주소를 가지고 있다는 것을 알았다. 컴퓨터마다, 실행할 때 마다 주소가 바뀌지만 우리는 포인터를 이용해 주소에 접근하고 그 공간에 있는 값을 사용할 수 있다. 그렇다면 메모리 안에서 변수들이 갖는 크기는 얼마나 될까? 데이터 형식(자료형)에 따라 크기를 할당 받는 것을 배우고 sizeof()를 통해 알아볼 수도 있지만 실제 메모리 상 주소 간격에 따른 차이를 확인해 보자. 자료형에 따른 주소 간격 출력#include using names.. 2022. 9. 8. LV2 C++ 포인터 Pointer [lv2/C++] 포인터 Pointer Pointer라는 단어를 사전에서 찾아보면 '가리키는 것'이라는 의미가 나올 것이다. 이 의미처럼 프로그래밍 언어에서 포인터는 메모리 공간에 저장된 변수의 주소를 가리키는 변수를 말한다. 비유를 통해 좀 더 쉽게 접근해 보자면 우리는 모두 '집'이라는 곳에 살고있다. 집은 각각 위치를 나타내는 유일무이한 '주소'를 가지고 있으며 이 주소는 중복되지 않고 단 하나의 집만을 가리킨다. 그 공간에 살고 있는 우리는 자기 자신이 살고있는 주소를 알고있으며 그 공간안에 어떤 '물건'들이 있는지 확인할 수 있다. 여기서 '물건'은 메모리 공간 안에 있는 '값'에 비유하고, '주소'는 변수가 저장된 메모리의 '주소'이며, '집'은 메모리의 '공간'을 뜻한다. 이 때 '우리'는 .. 2022. 9. 6. LV1 C++ 데이터 형식(자료형) 종류와 범위 [lv1/C++] 데이터 형식(자료형) 종류와 범위개인용 컴퓨터가 귀하던 시절에는 저장용량이 매우 작아 프로그램 구현 시 사용되는 공간의 효율때문에 자료형의 크기가 매우 중요하였다. 하지만 현대 시대에서 컴퓨터의 저장용량이 기하급수적으로 증가함에 따라 프로그램 구현에서 자료형의 크기 중요도는 많이 낮아는데 그럼에도 불구하고 자료형은 가독성, 처리속도, 값의 범위, 효율성 등 여러가지 이유로 간과해서는 안될 부분이라고 생각한다. 우리는 항상 컴퓨터가 똑똑한다고 말하지만 컴퓨터는 0과 1밖에 모르는 멍청이 라는 것을 집고 넘어가야한다. 컴퓨터는 무수한 0과 1로 이루어진 데이터의 집합체이다. 0과 1을 표현할 수 있는 데이터의 최소 단위를 Bit(Binary Digit)라고 하고 8개의 Bit가 모여 1B.. 2022. 9. 6. LV1 C++ 배열 Array 정리 [lv1/C++] 배열 Array 정리 배열배열(Array)은 연속된 공간에 같은 자료형의 데이터를 모아놓은 것이다.배열은 대부분의 프로그래밍 언어에서 사용할 수 있는 가장 기초적인 자료 구조이다. 배열의 선언 방법배열의 선언 방법은 배열의 이름 뒤에 대괄호("[ ]")를 이용하여 배열의 크기를 지정한다.배열의 크기는 연속된 공간에 들어갈 요소들의 개수를 의미하며 값이 정해져있는 상수나 식을 사용할 수 있다. (변수는 사용할 수 없다.)배열의 각각 요소에 접근하기 위해서는 인덱스(index, 첨자)를 사용하는데 이 때 배열의 인덱스는 0부터 시작되는 숫자이다. 예를 들어서 배열의 크기를 '5'로 지정했을 때 인덱스는 0, 1, 2, 3, 4 로 5개의 공간이 만들어지는 것이다. 배열의 선언 및 초기화배열.. 2022. 9. 6. LV1 C++ 반복문 while, do - while [lv1/C++] 반복문 while, do ~ while whilewhile문은 조건식이 참인 경우에만 내용을 반복한다.for문과 비교하면 초기값, 반복식에 해당하는 부분이 없다.그래서 초기값과 반복식에 해당하는 문장이 while문 내에 있어야 반복과 중단이 가능하다.while의 기본 구문은 다음과 같다.while (조건식){ 반복 내용;} do~whilewhile문은 조건을 먼저 판단한 다음에 참인 경우 반복할 내용을 실행 하지만do~while문은 while문과 다르게 반복 내용을 무조건 한 번 실행 시킨 후 조건을 판단하여 반복 여부를 결정하고, 조건식 다음에는 세미콜론(;)을 붙인다.do~while의 기본 구문은 다음과 같다do{ 반복 내용;}while(조건식); 1부터 10까지 더하는 프로그램을 .. 2022. 9. 2. LV1 C++ 반복문 for문 [lv1/C++] 반복문 for문 for문은 반복 횟수가 정해져 있는 형태가 주로 사용된다.물론 무한루프를 구현할 때도 사용하긴 하지만 또다른 형태의 반복문과 함께 작성하는 사람이 좀더 편하고 익숙한 방식으로 사용된다. 기본적인 구조는 다음과 같다.for((1)초기값;(2)조건식;(3)반복식){ (4)반복할 문장;}* (1) 초기 값 : 최초 한 번만 실행되는 초기화 과정으로 보통 반복을 제어하는 변수의 초기값을 설정한다.* (2) 조건식 : 반복을 빠져나오기 위한 조건으로 반복을 할 때마다 조사한다. 조건식이 참인 경우 계속 반복하고 거짓인 경우 반복을 그만하고 for문을 빠져 나간다.* (3) 반복식 : 일반적으로 반복을 제어하는 변수의 값을 증가 또는 감소시키는 식(증감식)이 들어간다.* (4) 반.. 2022. 9. 2. LV1 C++ 조건문 (선택문) switch case문 [lv1/C++] 조건문 (선택문) switch ~ case문 switch ~ case 문은 정수 값이나 문자 등을 이용한 조건 판단에 이용한다.if문과 함께 조건문에 해당되지만 switch문의 조건식에는 >, >=, 대신 switch 문의 조건식에는 결과값을 가지고 있는 변수 등이 들어가고 동등한 결과값을 가진 case를 찾게 된다. switch ~ case문의 기본 형태는 다음과 같다.switch (조건식) { case 값1 : 문장; break; case 값2 : 문장; break; case 값3 : 문장; break; default : 문장; break;}switch ~ case문에서 중요한 것은 'break;' 명령이.. 2022. 9. 2. LV1 C++ 조건문 if, else if, else [lv1/C++] 조건문 if, else if, else 조건문이란 조건을 판단하여 참과 거짓 여부에 따라 프로그램 처리 방향을 변경하는데 사용한다. 여기서 조건이란 참과 거짓을 판단할 수 있는 것을 말한다.현실 세계에서는 3은 10보다 작은가, 사과는 과일인가 처럼 명확히 답을 내릴 수 있는 것들이다.이처럼 프로그램에서도 참과 거짓을 판단할 수 있도록 조건식을 작성해야 한다. 조건문 중 제일 흔하게 쓰이는 것은 if문이다.사전에 찾아보면 알 수 있듯이 if는 '만약에'라는 뜻을 가진다.만약에 (조건문) 이 참이라면 이 문장을 실행한다.만약에 (조건문) 이 거짓이라면 이 문장을 실행하지 않는다. if문에는 여러가지 형식이 있지만 제일 기본적인 형식은 아래와 같다.if(조건식) { 문장;}조건식이 참일 때.. 2022. 9. 2. lv1 C++ 연산자와 우선순위 연산자(Operator)연산자는 하나 이상의 표현식을 대상으로 산술, 할상, 비교, 논리, 타입 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자(Operand)라 한다. 프로그래밍 언어는 일반적으로 수학 연산과 유사한 연산자의 집합을 지원한다. 연산자는 언어별로 비슷하지만 다양한 형태로 표현되고 있으며 수학 산술식과 같이 연산자에게 우선순위와 결합 규칙이 존재한다. 연산자의 위치는 전위 표기법(피연산자 앞에), 중위 표기법 (피연산자들 사이에), 후위 표기법(피연산자 뒤에) 등으로 표시된다. 2022. 8. 12. 이전 1 ··· 7 8 9 10 11 다음 반응형