Programming Language(97)
-
C++의 포인터 배열에 대해서
1. 포인터 배열포인터 배열이란 포인터들을 원소로 가지는 배열을 말한다.타입* 배열이름[크기];실 사용 예시는 아래와 같고int* arr[3]; // int* 타입의 요소를 3개 갖는 배열그 형태는int n1 = 10;int * ptr1 = &n1;int n2 = 20;int * ptr2 = &n2;int n3 = 30;int * ptr3 = &n3;int* ptrArr [3] = {ptr1, ptr2, ptr3};--------------------------------------------------- [ ptrArr ] │ │ ▼[ ptrArr[0] ] [ ptrArr[1] ] [ ptrArr[2] ] [ ptr1 ] [ ptr2 ] ..
2025.04.18 -
Ch 09. 함수 - 04. 주소로 전달
이전에는 값을 함수에 전달인자로 전달했을 경우를 보았었고 그 경우에는 함수를 호출한 쪽에서 전달한 변수는 값만을 복사해서 전달하고 호출 된 함수 내부의 매개변수의 변수는 그 값을 통해 초기화 하고 내부에서 매개변수의 값이 변경되더라도 호출된 쪽의 전달 인자의 값을 바꾸진 않는다는 것을 보았었다. 이번엔 값을 전달하는게 아니라 주소를 전달하는 방법에 대해서 알아보자. 1. 함수에 변수의 주소값를 전달함수에 변수의 주소값을 전달하기 위해서는 포인터를 사용해야한다.이걸 그대로 사용해보자면 바꿔야 할 부분은 함수의 매개변수의 타입이다. [changer 함수부]이걸 둘다 포인터로 변경해주면받을 준비는 완료되었다.이제 내부의 로직도 포인터를 사용하는 방법으로 바꿔보자. [main함수부: 함수를 call하는 곳]이제..
2025.04.18 -
Ch 09. 함수 - 03. 값으로 전달
우선 내용을 보기전에 하나의 경우를 보자. 이 changer 함수는 int 값 2개를 전달 받아 값을 서로 바꿔주는 함수이다. 이를 main함수로 호출해보자값이 바뀌지 않았음을 알 수 있다.왜 값이 바뀌지 않을까? 함수의 전달인자로 값을 전달이전에 scope에 따라서 값에 접근을 할 수 있는지 할 수 없는지에 대해서도 이야기 했었었다.보면 main이라는 함수와 changer라는 함수는 각각의 별개의 scope를 가지고 있는데main이란 함수에서 changer를 호출할때 a와 b를 전달해줬는데 이는 사실 a, b 자체를 직접 전달한게 아니라 a와 b의 값을 전달해주는 것으로 사실상이것과 동일하다고 생각하면 된다. 과정을 조금 상세하게 보자면 먼저 main함수가 실행되면서 지역변수인 두 변수가 스택에 올라..
2025.04.18 -
Ch 09. 함수 - 02. 재귀 함수
1. 재귀함수 재귀 함수(recursive function)는 함수의 내부에서 자기 자신을 다시 호출하는 함수를 말한다.void func() { func(); // 자기 자신을 다시 호출}이렇게만 구현하면 무한으로 자기 자신을 호출하기 때문에 반드시 종료조건(base case)을 만들어 줘야만 한다 재귀 함수를 사용하는 보통의 기본적인 구조는반환형 함수이름(매개변수) { if (종료조건) { return 값; } else { return 자기자신을 호출; }}이런 형태로 항상 종료 조건 + 재귀 호출의 두가지 부분으로 구성되게 된다. 2. 재귀함수의 사용 예제재귀 함수는 문제를 더 작은 문제로 나눠서 푸는 방식으로써 알고리즘에서는 중요한 개념이다이 재귀함수를..
2025.04.16 -
Ch 09. 함수 - 01. 함수의 기본
우리는 이전에 여러개의 함수를 사용해봤다.printf, scanf, swap 등등의 여러 함수를 사용했었는데 이번엔 우리가 함수를 만들어서 사용해볼 것이다. 놀랍게 우리는 여태까지 계속 함수를 만들어 사용했었는데 그 함수는 바로 main함수이다.함수의 형태는 기본적으로반환타입 함수명( 매개변수1, 매개변수2, ...){ //함수가 시작되면 실행될 코드들 //반환타입이 있다면 retrun 반환값;}의 형태로 생성할 수 있다. main함수를 이 구성 방식에 따라 확인해보면 반환값이 int형이고 함수의 이름은 main이며 매개변수를 받지 않는 함수라는 것을 알 수 있다.그런데 main의 경우는 return값을 따로 전달하지 않는데 그 이유는 main함수는 예외적으로 암시적으로 0을 리턴해주기..
2025.04.16 -
Ch 08. 참조 - 01. 참조(Reference)
1. 참조 (Reference)C++에서 참조(reference)란 변수에 별명을 붙이는것, 즉 다른이름으로 같은 메모리를 가리키는 방법이다 2. 사용법참조, 레퍼런스를 사용하는 방법은int num = 10;이라는 변수가 존재할때 int& rfnum = num;과 같이 타입과 변수명 사이에 &연산자를 붙여주면 선언이 가능하다. 포인터와는 달리 우항의 변수에는 &를 붙이지 않고 변수명 그대로 사용하고 * 대신 &를 붙여서 선언을 하면 된다.이렇게 코드를 작성해서 출력해보면이렇게 결과를 출력하는 것을 볼 수 있다. 이때 레퍼런스를 사용해서 값을 변경하면이렇게 바라보던 변수 num의 값도 변경되는 것을 볼 수 있다. 1) 레퍼런스는 초기화할때 넣은 변수 외에는 다른 변수를 바라보게 할 수 없다레퍼런스는 초기화..
2025.04.16