c포인터

    [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++] 포인터 동적 메모리 할당

    void 형 포인터​ 선언 : void *vp; 이렇게 선언하면 vp포인터 변수의 대상체는 void형이 되며 이는 곧 대상체가 정해져 있지 않다는 뜻이다. ​ void 형은 함수와 포인터 변수에게만 적용되는 타입으로 일반 변수에는 쓸 수 없다. void 형 포인터의 특징​ 1. 임의의 대상체를 가리킬 수 있다. ​ void형 포인터는 어떠한 대상체라도 가리킬 수 있다. vp = pi; vp = pd; 좌변이 void형 포인터일 때는 우변에 임의의 포인터형이 모두 올 수 있다. ​ 반대로 임의의 포인터에 void형 포인터를 대입할 떄는 반드시 캐스팅을 해야한다. ​ 캐스팅 ex) pi = (int * ) vp; pd = (double *)vp; 2. *연산자를 쓸 수 없다. ​ void형 포인터는 임의의 ..

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

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