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가 된다. 컴퓨터는 ..