C언어 (21) 썸네일형 리스트형 [C언어] 배열을 처리하는 함수 학습 목표 : 배열의 데이터를 처리하는 함수는 많은 양의 데이터를 효과적으로 공유하는 방법이 필요합니다. 이 절에서는 배열명을 인수로 받아 배열을 처리하는 함수에 대해 살펴봅니다. 배열과 포인터에 대해 배웠지만, 배열명을 꼭 포인터에 넣는 방식으로 배열을 처리할 필요는 없었습니다. 하지만 함수로 배열을 처리하려면 포인터가 필요합니다. ary배열에서 배열명 ary는 첫 번째 배열 요소의 주소 입니다. 이 주소 값을 함수의 인수로 주면, 함수는 이 값을 받아 주소 계산을 통해 모든 배열 요소를 사용할 수 있습니다. 이때 배열명을 받을 함수의 매개변수 자리에 포인터가 필요합니다. int ary[5] = { 10, 20, 30, 40, 50 }; 배열 요소를 출력하는 print_ary 함수를 만들었다면 다음과 .. [C언어] 배열과 포인터 학습 목표 : 배열의 데이터를 자유롭게 다루기 위해서는 배열의 구현 원리를 이해할 필요가 있습니다. 이 절에서는 배열과 포인터의 관계를 밝히고 포인터로 배열을 사용하는 방법을 살펴보겠습니다. 배열은 자료형이 같은 변수를 메모리에 연속으로 할당합니다. 따라서 각 배열 요소는 일정한 간격으로 주소를 갖게 됩니다. 예를 들어 int ary[5]; 의 배열이 메모리 100번지부터 할당되고 int형 변수의 크기가 4바이트라면 각 배열 요소의 주소는 100, 104, 108, 112, 116번지가 됩니다. 결국 첫 번째 요소의 주소를 알면 나머지 요소의 주소도 쉽게 알 수 있고, 각 주소에 간접 참조 연산을 수행하면 모든 배열 요소를 사용할 수 있습니다. 따라서 컴파일러는 첫 번째 배열 요소의 주소를 쉽게 사용하도.. [C언어] 포인터 완전 정복하기 학습목표 : 포인터를 완전히 이해하지 못하면 C언어를 사용할 줄 안다고 할 수 없을 정도로 포인터는 매우 중요합니다. 한편 많은 사람들이 숨을 헐떡이며 넘어가는 구간이기도 합니다. 이 글을 통해 포인터의 필요성은 물론 포인터 필요성과 다양한 활용 방법을 알아보겠습니다. 포인터는 주소를 저장하는 일정한 크기의 메모리 공간입니다. 따라서 언제든지 다른 주소를 저장하거나 포인터끼리 대입할 수 있습니다. 그러나, 일반 변수와는 달리 대입 연산에 엄격한 기준이 적용됩니다. 이런 특징을 이해하는 것은 포인터를 더 잘 활용하는 데 도움을 줍니다. 주소와 포인터의 차이 주소는 변수에 할당된 메모리 저장 공간의 시작 주소 값 자체이고, 포인터는 그 값을 저장하는 또 다른 메모리 공간입니다. 따라서 특정 변수의 주소 값은.. [C언어] 포인터 학습 목표 : C언어는 메모리에 접근해서 우리가 원하는 방식으로 데이터를 사용할 수 있는 언어입니다. 지금까지 메모리에 접근하는 가장 쉬운 방법은 변수를 사용하는 거이었는데, 이 절에서는 메모리의 주소 값을 이용하는 '포인터'에 대해 알아보겠습니다. 지금까지 변수 선언으로 메모리에 공간을 확보하고, 그곳을 데이터를 넣고 꺼내 쓰는 공간으로 사용했습니다. 변수명은 그러한 메모리 공간을 식별할 수 있는 이름이었고요. 그러나 변수는 선언된 블록({}), 함수 내부로 사용이 제한되어 있습니다. 같은 변수명을 사용했다 하더라도 블록이나 함수가 다르면 별도의 저장 공간을 확보하므로 전혀 다른 변수로 사용되는 것이죠. 그래서 사용 버위를 벗어난 경우도 데이터를 공유할 수 있는 새 로운 방법인 포인터 개념을 이 장에서.. [C언어] 포인터 '포인터'는 메모리의 주소를 가지고 있는 변수이다. 컴퓨터에서 메모리는 바이트 단위로 주소가 매겨져 있다. 마을에 건물들이 가지고 있는 주소를 이용하여 원하는 집을 찾을 수 있는 것과 같이 컴퓨터 메모리도 주소로 접근할 수 있고, 주소를 이용하여 값을 저장하기도 하고, 값을 읽기도 한다. 우리가 변수를 만들 때, 변수는 어디에 만들어질까? 변수는 자료들을 정장하기 때문에 메모리에 만들어지는 것이 확실하다. 메모리의 각 바이트마다 고유한 주소가 매겨진다. 이 주소를 사용하여 우리는 메모리의 바이트에 접근할 수 있다. 만약 시스템이 20바이트의 메모리를 가지고 있다고 하자. 그럼 첫 번째 바이트 주소는 0, 두 번째 바이트 주소는 1, 마지막 바이트 주소는 19이다. 프로그램에서 변수를 만들면 이 변수는 컴.. 이전 1 2 3 다음