SH1R0_HACKER

C언어 :: 포인터 문제 (2) 본문

Programming Language/C

C언어 :: 포인터 문제 (2)

SH1R0_HACKER 2021. 1. 16. 15:12
#include <stdio.h>

int main() {
	int a[5] = { 2, 4, 6, 8, 10 };
	int* ptr = &a;

	for (int i = 0; i < 5; i++) {
		printf("%d ", *ptr[i]);
	}
}

위의 코드를 실행하려 했더니 오류가 발생한다.

어디가 잘못되었는지 확인하고 수정해보자.


#include <stdio.h>

int main() {
	int a[5] = { 2, 4, 6, 8, 10 };
	int *ptr_a = a;

	printf("for문 출력 : ");
	for (int *ptr = a; ptr < a + 5; ptr++) {
		printf("%d ", *ptr);
	}
	printf("\n\n");
	printf("*ptr_a + 3 = %d\n", *ptr_a + 3);
	printf("*(ptr_a + 1) = %d\n", *(ptr_a + 1));
	printf("*(*ptr_a + a) = %d\n", *(*ptr_a + a));
}

각 변수의 주소값이 아래와 같을 때 위 코드를 실행시켰을 경우 출력될 값을 적어보세요.

 

a의 주소값 : 100

ptr_a의 주소값 : 200

 

[ 출력 값 ]

for문 출력  : 

 

*ptr_a + 3 =

*(ptr_a + 1) =

*(*ptr_a + a) =