C++ (4) 썸네일형 리스트형 [C++]포인터 개념, 사용 예시, 포인터 연산자 포인터란 C++에서 포인터란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부른다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장하는 데 사용 된다. int n = 100; // 변수의 선언 int *ptr = &n; // 포인터의 선언 사용된 변수와 포인터가 메모리에서 어떻게 저장되는지를 보여주는 그림이다. 포인터 연산자 C++에서 포인터와 연관되어 사용되는 연산자는 다음과 같다. 1. 주소 연산자(&) 주소 연산자는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다. '&'기호는 앰퍼샌드(ampersand)라고 읽으며, 번지 연산자라고도 불림 2. 참조 연산자(*) 참조 연산자는 포인터의 이름이나 주소 앞에 사용하여, 포인터에 저장.. [C++]Call by value, Call by reference 함수의 호출 방법은 대표적으로 Call by value(값에 의한 호출)와 Call by reference(참조에 의한 호출)가 있다. 함수 호출이란 말 그대로 정의된 함수를 호출하는 것으로 함수에 정의한 매개변수의 형태에 따라 Call by value 혹은 Call by reference인지 결정된다. Call by value Call by value란 함수 호출 시 넘기는 인자의 값이 매개변수에 복사돼서 함수 내에서 매개변수에 직접적인 데이터 조작을 가해도 인자에 영향을 주지 않는 것이다. 여기서 값이란 주소 값이 아닌 그 자체로 유의미한 데이터로 생각하면 된다. 여기 두 변수의 값을 바꾸는 Swap 함수가 있다. a와 b는 각각 10과 20으로 초기화했고 함수는 인자로 받은 두 값을 바꾸는 작업을 .. [C++]메모리 구조 데이터, 스택, 힙 Data 영역 코드에서 선언한 전역변수 또는 static 변수 등등이 저장된 공간이다.전역변수/ static 값을 참조한 코드는 컴파일하고 나면 Data 영역의 주소값을 가르키도록 바뀐다. 실행 중도에 전역변수가 변경 될 수 있으니 이 영역은 Read-Write로 지정돼있다. 단, 초기화 되지 않는 전역 변수는 BSS영역에 할당된다. Stack 영역 (1) 매개변수, 지역변수 - 함수 (2) 함수호출 할당, 함수 호출끝 해제 (3) 공간이 작다(보통 1MB) (4) 크기가 컴파일 타임에 정해짐 자료구조로 많이 알려진 Stack은 프로세스의 메모리 공간을 관리하기 위한 알고리즘 중 하나이다. 이 영역은 함수 안에서 선언된 지역변수, 매개변수, 리턴값, 돌아올 주소 등등이 저장되고 함수 호출시 기록하고 종료.. [C++] const 위치의 의미와 사용 방법 C++ 에서 const는 "상수"를 뜻한다. 따라서 C++에서도 그 대상을 변경하지 않는 "상수"를 의미함 C++ 에서의 const는 위치에 따라 의미하는 바가 완전히 달라진다. Const 변수 const 비-멤버 변수 const int num = 1; // 일반적인 표현 int const num = 1; // 위와 같은 의미 num = 2; // Compile Error 위의 두 방식 모두 같은 뜻으로 num은 변할 수 없는 상수가 되는 것을 의미한다. JAVA에서 배운 const와 같다고 보면 된다. const 멤버 변수 const 변수는 반드시 선언 시 초기화를 해야 하며 초기화 하지 않으면 컴파일 에러가 발생 그래서 class의 멤버 변수를 const로 선언 시에는 반드시 초기화 리스트(Initi.. 이전 1 다음