SH1R0_HACKER

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

Programming Language/C

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

SH1R0_HACKER 2021. 1. 17. 15:58
#include <stdio.h>

int main() {
	int a = 10, b = 20;
    
	int* ptr = &a;
	*ptr = 30;

	ptr = &b;
	*ptr = 50;

	printf("a : %d\n", a);
	printf("b : %d\n", b);
	printf("*ptr : %d\n", *ptr);
}

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

 

a의 주소값 : 100

b의 주소값 : 200

ptr의 주소값 : 300

 

[ 출력 값 ]

a : 

b : 

*ptr :


#include <stdio.h>

int main() {
	int arr[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
	printf("arr : %d\n", arr);

	for (int i = 3; i < 5; i++) {
		printf("%d - %d\n", arr + i, *(arr + i));
	}
}

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

 

arr의 주소값 : 100

 

[ 출력 값 ]

arr :

 

 


#include <stdio.h>

int main() {
	int arr[3][3] = { 0, };

	printf("arr : %d\n", arr);
	printf("&arr : %d\n", &arr);
	printf("*arr : %d\n\n", *arr);

	printf("arr[0] : %d\n", arr[0]);
	printf("&arr[0] : %d\n", &arr[0]);
	printf("*arr[0] : %d\n\n", *arr[0]);

	printf("arr[0][0] : %d\n", arr[0][0]);
	printf("&arr[0][0] : %d\n", &arr[0][0]);
}

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

 

arr의 주소값 : 100

 

[ 출력 값 ]

arr :

&arr :

*arr :

 

arr[0] :

&arr[0] :

*arr[0] :

 

arr[0][0] :

&arr[0][0] :


#include <stdio.h>

int main() {
	int arr[3][3] = { 0, };
    
	printf("&arr[0][0] : %d\n", &arr[0][0]);
	printf("arr[0] + 1 : %d\n", arr[0] + 1);
	printf("&arr[0] + 1 : %d\n", &arr[0] + 1);
	printf("arr + 1 : %d\n", arr + 1);
	printf("&arr + 1 : %d\n", &arr + 1);
}

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

 

arr의 주소값 : 100

 

[ 출력 값 ]

&arr[0][0] :

arr[0] + 1 :

&arr[0] + 1 :

arr + 1 :

&arr + 1 :