#include<stdio.h>
void
swap(int a, int b);
void
swap_addr(int * a, int * b);
void
changeArray(int* ptr);
int
main(void)
{
// 배열일
때 , arr -> 주소
int arr2[3] = { 10,20,30 };
changeArray(arr2);
for (int i = 0; i < 3; i++)
{
printf("%d\n", arr2[i]);
}
changeArray(&arr2[0]);
for (int i = 0; i < 3; i++)
{
printf("%d\n", arr2[i]);
}
// 첫번째
배열 항목에 주소를 던지면 세번째 배열항목의 주소로 바꿔서 출력
//scanf 에서 &num과
같이 & 를 사용하는 이유
return 0;
}
void
swap(int a, int b)
{
printf("(swap 함수내) a의 주소
: %d\n", &a);
printf("(swap 함수내) b의 주소
: %d\n", &b);
int temp = a;
a = b;
b = temp;
printf("swap 함수 내 => a: %d, b :
%d\n", a, b);
}
void
swap_addr(int * a, int * b)
{
int temp = *a;
*a = *b;
*b = temp;
printf("swap 함수 내 => a: %d, b :
%d\n", *a, *b);
}
void
changeArray(int * ptr)
{
ptr[2] = 50;
}
값을 넣거나 바꿀때 주소값으로 정확히 넣어줘야 기존에 있던 주소공간이 변경된다.
댓글 없음:
댓글 쓰기