C/포인터

포인터를 더 활용해보기

appmaster 2019. 8. 12. 13:30

우리는 포인터를 통해서 저배열안에 있는 인스턴스중에서 55와 22를 출력해야한다.

 

int main(void) {

	int numArr[5] = { 11, 22, 33,44,55 };
	int* numPtra;
	void* ptr;

	numPtra = &numArr[2];
	ptr = numArr;

	printf("%d\n",*(numPtra+2));
	//numPtra는 numArr의 3번째칸의 주소를 가지고 있으므로, 55을 출력하려면 그 주소에서 +2를 해야한다.
	
	
	printf("%d\n", *((int*)ptr+1)); 
	// ptr은 numArr의 주소를 가지고 있으므로 그리고 몇번째 칸에 있는지 알려면 int로 추적이 가능하니까 일단 먼저 (int*)로 형변환을 한다.
	// 그리고 22는 2번째칸에 있으므로 0+1해야지 2번째 칸인 22값을 꺼내올수있다.
	

	return 0;

}

 

여기서 5번쨰 칸을 출력하려면 이미 2를가리킨(3번쨰칸)numPtra에 2를 더해줘야한다. 그리고 22를 출력하려면 포인터로 지정되어있지않은 값 ptr을 (int*)로 포인터화로 하고 포인터화로 된 ptr에다가 1을 더해준 포인터 값으로 구하면된다.

'C > 포인터' 카테고리의 다른 글

포인터 사용시 주의해야할 점  (0) 2019.12.05
함수와 포인터  (0) 2019.12.05
포인터 매개변수에 대해  (0) 2019.08.12