프로그래밍 언어 93

포인터

포인터는 ' * ' 연산자를 쓴다 ' * ' 연산자는 간접 연산자라고도 불리며, 역참조 연산자라고도 불린다. 포인터는 데이터가 저장된 주소값을 가리킨다. 그리고 이 주소로 해당 주소의 값에 접근하여, 값을 변환하거나 동적할당을 할 때 쓴다. int *pa; 예시에서 int는 주소를 구한 변수의 형태이고, *는 포인터의 기호, pa는 포인터의 이름이다. 포인터의 변수가 선언되면 일반 변수와 마찬가지로 메모리에 저장 공간이 할당되며, 그 이후에 변수명으로 사용 가능하다. pa = &a; 만약 변수 a가 메모리 100번지부터 103번지까지 할당되었다면 주소 값이 100이고 pa에 저장된다. 그렇게 되면 pa는 변수 a가 메모리 어디에 할당되었는지 그 위치를 기억하고 있게 된다. pa -> a 이러한 과정을 통..

버블 소트 Bubble Sort

버블 소트 Bubble Sort 버블 소트는 인접한 2개의 레코드를 비교하여 검사하는 알고리즘으로 알고리즘을 처음 접하는 이에게, 교육용 알고리즘으로 접하기 좋다. 정렬 방법으로는 두 숫자를 비교하고, 큰 숫자를 오른쪽 혹은 왼쪽으로 스왑하며 정렬하는 알고리즘이다. 회전 수 만큼 검수하는 수가 차감되어, 결국에는 검수하는 정렬의 길이만큼 회전하여 속도의 문제에서는 실용적이지 못하다. 이하는 코드를 분석하며 더블 소트의 이해를 돕겠다. #include int swap (int *a, int *b) // 주소값을 받아 포인터를 이용한 스왑함수이다. { int temp = *a; *a = *b; *b = temp; } void main() { int arr [10] = { 3, 5, 6, 8, 1..

배열

배열이란? 배열은 같은 자료형만 묶여 놓여진 집합이다. 메모리에 연속적으로 저장해놓고 사용하는 방법으로. 이를 배열이라고 부른다. puls + 비슷한 기능이지만 서로 다른 개념! 구조체란? 구조체란 서로 다른 자료형을 묶을 수 있는 집합이다. 기본 타입만으로는 나타낼 수 없었던 복잡한 데이터를 표현하기 유용하다. 1. 배열의 선언 방법 배열도 그간 이용했던 자료형처럼 선언을 통해서 저장 공간을 확보해야 한다. 다만, 기존에 자료형의 선언과 달리, 하나의 이름으로 한번에 확보하여야 한다. int ary [ 5 ] ; 1. int 는 자료형을 선언한 것이고 2. ary는 배열의 이름의 예시이다. 3. 대괄호 [] 685478 + ( 1 * 4 ) => 685482 ( + 4가 되었다) 배열의 주소에 정수 연..