목록이해 (5)
Prosto
'포인터(Pointer) - 특정 변수(의 주소)를 가리키는 역할을 하는 변수!' 프로그래밍을 하다보면 main에서 한번 만들어둔 변수 값을 다른 함수에도 그대로 사용하고, 또 변경하고싶은 경우가 있을 수 있습니다.같은 지역(main 내)에 있는 변수라면 사용, 변경은 간단하지만,같은 지역이 아닌 경우(main 외 호출된 함수)는 해당 값을 임시 변수로 받아 반환하는 식으로 처리하게 됩니다.이런 때 좀 더 효율적으로 처리할 수 있게 해주는 게 포인터를 사용하는 큰 이유로 볼 수 있습니다.(사실 더 큰 이유는 메모리를 할당받고 해당 공간을 기억하는데 사용되지만, 그건 포인터 공부가 어느정도 된 후에 보면 금방 이해될 것이라 생각됩니다!) 간단한 소스와 함께 위의 설명을 다시 확인해볼까요?#include//..
재귀적 호출 함수를 이해하기 위해선사용자 정의 함수를 먼저 알고있어야 합니다.(잘 모르신다면 아래 글을 참고해주세요.) '사용자 정의 함수의 이해와 예제, 문제 -C언어' 이번에는 재귀적 호출 함수에 대하여 알아보도록 하겠습니다. 재귀적 호출 함수란 무엇일까요? 말그대로 재귀(再歸 : 원래의 자리로 되돌아가거나 되돌아옴) 함수입니다. 함수에서 다른 함수를 호출하는 게 가능하다는 걸 알고 계시죠? 여기서 달라지는 부분이 바로 다른 함수를 호출하는 것이 아닌 자기 자신을 다시 호출한다는 것입니다. Recursive라는 함수를 만들어 예를 들어볼까요? void Recursive(){ //내용 Recursive();} 같은 식으로 구성된 함수입니다. 이런 함수를 메인에서 ( int main(void) { Rec..
'사용자 정의 함수 - 이미 만들어진 함수를 사용하듯 직접 새로운 함수를 정의하여 사용하는 방법!' 프로그래밍을 하다보면 같은 작업을 변수 몇 가지만 바뀌어서 처리하거나,특정 기능을 만들어서 필요할 때마다 사용하고 싶은 경우가 있습니다.그런 때 사용할 수 있도록 해주는 게 사용자 정의 함수입니다. 지금까지 우리가 배웠던 것들을 그대로 함수로 만들 수 있습니다.예를 들면, 두 수를 전달해주면 더하기 기능을 해주는 함수를 만들 수도 있고, 구구단 중 특정 단을 출력해주는 기능을 하는 함수를 만들 수도 있습니다. 실제로 게임에서도 캐릭터가 이동하는 기능을 하는 함수, 공격을 하는 함수, 체력을 표시해주는 함수같이 여러 개의 함수를 만들어서 사용하게 됩니다. 함수에도 지금까지 했던 것처럼 일정한 규칙이 있지만,..
'맞는 위치에 삽입시켜가며 정렬하는 삽입정렬' 삽입정렬은 Insertion Sort라고도 부르며 데이터 정렬 방법 중 하나입니다. 키(key) 값을 가지고 정렬시키는 삽입 정렬은 두 번째 자료부터 시작하여 그 앞의 자료들과 비교하여 알맞은 위치로 삽입하는 형태의 정렬입니다. (배열로 보는 경우 삽입이라면 뒤의 자료들은 한 칸씩 밀리는 형태가 되겠죠?) (아래 데이터 이동 그림을 보시면 이해하시기 더 좋을 것이라 생각됩니다.) 여러 회전을 반복하여 정렬하는 방법입니다. 첫 번째 회전에서는 두 번째 자료를 키 값으로 가지고 앞의 자료들을 하나씩 비교합니다. 두 번째 자료의 앞 자료는 첫 번째 자료 하나밖에 없으니 하나만 확인하면 됩니다. 첫 번째 자료가 키 값보다 크다면 두 번째 자료를 첫 번째 자료로 바꿔..
'배열 - 변수들을 필요한 만큼, 여러 개를 한번에 만들고, 사용할 수 있는 방법!' 프로그래밍을 하다보면 한 종류의 여러 개의 변수가 필요한 경우가 있습니다. 또는 단순 반복 작업을 간단하게 처리하고 싶지만, 변수 이름이 여러 개라면 그렇게 하기 힘들죠. (하나씩 일일이 입력해줘야죠....) 이런 때에 사용되는 게 바로 배열입니다. 예를 들어 학생 100명의 테스트 점수를 받고싶은데, 그 점수를 받는 변수들을 배열을 사용하지 않는다면 어떻게 받아야 할까요? int student1, student2, student3, student4, student5, ... , student99, student100 이렇게 1번 학생부터 100번 학생까지 일일이 만들어줘야겠죠? 그러면 입력 받을 때는 어떻게 될까요? ..