포인터

    [C,C++] 이중 포인터

    이중 포인터 ​ 포인터 변수를 가리키는 포인터 = 포인터의 포인터 ​ 포인터 변수도 메모리를 차지하고 있으므로 이 변수도 당연히 번지가 있다. 그래서 이중포인터를 선언할 수 있다. ​ 이중 포인터 변수를 선언할 떄는 * 구두점을 두 번 연속해서 쓴다. ​ int **ppi; = 정수형 대상체를 가리키는 포인터 변수의 번지를 가리키는 포인터 int **ppi == (int *) *ppi;​ ex) dbIPointer { int i; int *pi; int **ppi; ​ i = 1234; pi = &i; ppi = π ​ printf("%d\n",**ppi); } ​ 정수형 포인터 pi가 i의 번지를 가지고 정수형 이중 포인터 변수 ppi에는 pi의 번지를 대입해 놓고 ** 값을 읽으면 결국 i값이 읽혀진..

    [C,C++] 포인터 연산

    포인터 연산​ T형 포인터 ( type ) ​ 임의의 타입 T가 있을 때 T형의 포인터 변수를 선언할 수 있다. ​ int, char , double 등의 기본적인 데이터 타입형의 변수를 선언할 수 있음을 물론이고 구조체, 공용체, 배열에 대해서도 포인터형을 만들 수 있다. ​ * int , * char , * double ​ 가리키는 대상체(포인터가 가리키는 실체)와 포인터의 타입이 일치해야 한다. # 이건 기본 상식.. ​ 메모리 위치를 가리키는 포인터는 자신이 가리키고 있는 번지에 저장된 값이 어떤 종류인지를 기억하고 있어야 하며 이런 이유로 포인터를 선언할 때 대상체의 타입을 밝혀야 한다. ​ #증감연산자를 사용해서 현재 위치에서 앞뒤로 이동 번지를 가리키는 포인터도 일종의 변수이므로 실행 중에 ..

    [C,C++] 포인터의 정의 , 포인터 란?

    포인터란?​ 정수형이나 실수형의 일반적인 변수들은 수치값을 저장한다. 이에 비해 포인터형은 번지를 기억한다. ​ 포인터의 쓰임 데이터가 보관되어 있는 메모리 위치를 기억하고 있기 때문에 직접 값을 조작할 수도 있고 주변의 다른 값 까지도 손댈 수 있다. 위치는 단순히 4바이트의 번지이기 떄문에 함수의 인수로 전달하거나 받기도 효율적이며 함수로 포인터를 전달하면 포인터가 가리키는 메모리를 함수가 직접 조작이하는 것이 가능하다. 번지(address)의 개념 컴퓨터의 주 기억장치로 사용되는 RAM은 용량이 아주 커서 보통 백만 , 10억 단위를 사용한다. 32비트 운영체제에서 각 프로그램은 32비트의 가상 메모리 공간을 사용할 수 있다. 즉 값을 기억할 수 있는 메모리의 용량은 최대4G가 된다. ​ 컴퓨터는 ..