pointer

C++에서 함수는 포인터들도 리턴할 수 있습니다. 그러한 함수들은 type *funcion(); 의 형태로 선언됩니다. 한가지 중요한 점은 '절대로 함수 내의 로컬 변수를 리턴하지 않는다.' 입니다. 간단한 예시 코드를 살펴보겠습니다. int *largest_int(int *int_ptr1, int *int_ptr2){ if (*int_ptr1 > *int_ptr2) return int_ptr1; else return int_ptr2; } 두개의 정수 포인터를 비교하여 더 큰 값의 정수의 포인터를 반환합니다. 이 함수를 사용하는 메인 함수의 예시는 다음과 같을 수 있습니다. int main() { int a {30}; int b {40}; int *largest_ptr{nullptr}; largest_p..
일반적인 변수에 대한 포인터를 공부하다보면, 상수 값에 대한 포인터가 궁금해질 수 있습니다. const 키워드로 선언하는 상수는 알다시피 그 값이 선언과 초기화 이후에 변경할 수 없습니다. 그리고 포인터는 상수에 대한 기능도 역시 수행할 수 있습니다. 상수와 관련된 포인터는 총 세가지 종류로 분류할 수 있겠습니다. 상수에 대한 포인터 (pointers to constants) 상수 포인터 (constant pointers) 상수에 대한 상수 포인터 (constant pointers to constnats) 하나씩 알아보겠습니다. 1. 상수에 대한 포인터 (pointers to constants) 상수에 대한 포인터가 가르키는 데이터는 상수이고, 변경될 수 없습니다. 하지만 포인터 스스로는 변경되고 다른 ..
C++의 포인터는 Assignment Expressions (대입 표현식) Arithmetic Expressions (산술 표현식) Comparison Expressions (비교 표현식) 에서 사용이 가능합니다. 포인터에 대한 다양한 연산(산술)이 가능합니다. 다음은 포인터에 적용 가능한 몇가지 연산들입니다. (++) 포인터의 값을 증가시켜 배열의 다음 요소를 가르키도록 합니다. int_ptr++; (--) 포인터의 값을 감소시켜 배열의 이전 요소를 가르키도록 합니다. int_ptr--; (+) 포인터의 값을 n * sizeof(type) 만큼 증가시킵니다. int_ptr += n; or int_ptr = int_ptr + n; (-) 포인터의 값을 n * sizeof(type) 만큼 감소시킵니다. i..
배열과 포인터의 관계: Relationship Between Arrays and Pointers 배열과 포인터를 둘 다 얼추 이해하게 되면, 한가지 공통점을 알게 됩니다. 배열의 이름이 어떤 것을 의미하는지 기억하고 계시나요? 바로 '배열의 첫번째 데이터의 주소값'을 나타냅니다. 그리고, 포인터 변수의 값은 주소값이였습니다. 이렇게 보면 사실상 배열의 이름과 포인터는 동일한 것 같지 않나요? 실제로 만약 포인터가 배열의 요소와 동일한 타입을 가지고 있다면, 포인터와 배열은 상호교환적으로, (사실상) 동일하게 사용할 수 있습니다. 간단한 코드로 이를 확인해 보겠습니다. int scores[]{100, 90, 80}; cout
Ricky U. Lee
'pointer' 태그의 글 목록