SH1R0_HACKER
C언어 :: 포인터 문제 (2) 본문
#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) =
'Programming Language > C' 카테고리의 다른 글
C언어 :: 포인터 정리 (4) - 2차원 배열과 배열 포인터 (0) | 2021.01.17 |
---|---|
C언어 :: 포인터 정리 (3) - 배열 포인터 (0) | 2021.01.16 |
C언어 :: 포인터 정리 (2) - 배열과 포인터의 관계 (0) | 2021.01.16 |
C언어 :: 포인터 정리(1) - 포인터란? (0) | 2021.01.16 |
C언어 :: 포인터 문제 (1) (0) | 2021.01.16 |