2020. 4. 19.

[c] 인프런 47. 배열과 포인터의 관계 강의 정리



#include<stdio.h>
int main(void)
{
// 배열
int arr[3] = { 5, 10, 15 };
int* ptr = arr;
for (int i = 0; i < 3; i++)
{
printf("배열 arr[%d] 의 값: %d\n", i, arr[i]);
}
for (int i = 0; i < 3; i++)
{
printf("배열 ptr[%d] 의 값: %d\n", i, ptr[i]);
}
ptr[0] = 100;
ptr[1] = 200;
ptr[2] = 300;
for (int i = 0; i < 3; i++)
{
printf("배열 arr[%d] 의 값: %d\n", i, arr[i]);
}
for (int i = 0; i < 3; i++)
{
printf("배열 ptr[%d] 의 값: %d\n", i, ptr[i]);
}
// 다르게 표현하여 출력
for (int i = 0; i < 3; i++)
{
printf("배열 arr[%d] 의 값: %d\n", i, *(arr + i));
}
for (int i = 0; i < 3; i++)
{
printf("배열 ptr[%d] 의 값: %d\n", i, *(ptr+i));
}
// *{arr+i)==arr[i] 똑같은 표현

// arr=arr 배열의 첫번째 값의 주소와 동일 == &arr[0]
printf("arr 자체의 값 : %d\n", arr);
printf("arr[0]의 주소 : %d\n", &arr[0]);

printf("arr 자체의 값이 가지는 주소의 실제 값 : %d\n", *arr);
printf("arr[0] 자체의 값이 가지는 주소의 실제 값 : %d\n", *&arr[0]);

// *& 는 아무것도 없는 것과 같다 &는 주소이며, *는 그 주소의 값이기 때문에,
// *& 는 서로 상쇄된다.
printf("arr[0] 의 실제 값: %d\n", *&*&*&*&*&*&*&*&arr[0]);
printf("arr[0] 의 실제 값: %d\n", arr[0]);

return 0;
}



댓글 없음:

댓글 쓰기