Layer7 포인터
문제 1
* 연산자: 포인터 변수 안의 주소에 접근 할 때 사용
& 연산자: 변수의 주소를 갖고 올 때 사용
#include <stdio.h>int main()
{
int a = 10;
int *ptr = &a; printf("value: %d, address: %p\n", a, &a);
printf("ptr is pointing: %p, and there is: %d", ptr, *ptr);
return 0;
}문제 2이중 포인터는 포인터를 가리키는 포인터이다.#include <stdio.h>int main()
{
int a = 10;
int *ptr = &a;
int **ptr2 = &ptr;
printf("value: %d, address: %p\n", a, &a);
printf("ptr is pointing: %p, and there is: %d", ptr, *ptr);
printf("ptr2 is pointing: %p, and there is: %p, and it has the value : %d", ptr2, *ptr2, **ptr2);
return 0;
}문제 3다차원 포인터는 인간이 이해하기에나 다차원 포인터임. 결국 메모리는 2차원 공간이므로 연속된 공간에 할당 되게 됨.#include <stdio.h>int main()
{
int arr[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
puts("arr[0] == arr[0][0]");
printf("%p %p\n", arr[0], &arr[0][0]);
puts("arr[1] == arr[1][0]");
printf("%p %p\n", arr[1], &arr[1][0]);
puts("arr[1] == arr[1][0]");
printf("%p %p\n", arr[1], &arr[1][0]);
puts("arr[1][3] == arr[2][0]");
printf("%p %p\n", &arr[1][3], &arr[2][0]);
}
Comments
Post a Comment