#include <stdio.h>
int main(void)
{
// [철수] : 101호 -> 메모리 공간의 주소
// [영희] : 201호
// [민수] : 301호
// 각 문 앞에 암호가 걸려 있음
int 철수 = 1; // 암호
int 영희 = 2;
int 민수 = 3;
printf("철수네 주소 : %d, 암호 : %d\n", &철수, 철수); // 주소를 나타내려면 철수 앞에&
printf("영희네 주소 : % d, 암호 : % d\n", &영희, 영희);
printf("민수네 주소 : %d, 암호 : %d\n", &민수, 민수);
return 0;
}
int main(void)
{
int* 미션맨; // 포인터 변수
미션맨 = &철수;
printf("미션맨이 방문하는 곳 주소 : %d, 암호 : %d\n", 미션맨, *미션맨);
미션맨 = &영희;
printf("미션맨이 방문하는 곳 주소 : %d, 암호 : %d\n", 미션맨, *미션맨);
미션맨 = &민수;
printf("미션맨이 방문하는 곳 주소 : %d, 암호 : %d\n\n", 미션맨, *미션맨);
return 0;
}
int main(void)
{
미션맨 = &철수;
*미션맨 = *미션맨 * 3;
printf("미션맨이 암호를 바꾼 곳 주소 : %d, 암호 : %d\n", 미션맨, *미션맨);
미션맨 = &영희;
*미션맨 = *미션맨 * 3;
printf("미션맨이 암호를 바꾼 곳 주소 : %d, 암호 : %d\n", 미션맨, *미션맨);
미션맨 = &민수;
*미션맨 = *미션맨 * 3;
printf("미션맨이 암호를 바꾼 곳 주소 : %d, 암호 : %d\n", 미션맨, *미션맨);
return 0;
}
**포인터 변수 : 포인터 자체가 변수의 값을 직접 바꿀 수 있다.
** *&는 아무것도 없는 것과 같음. (&은 주소 , *는 그 주소의 값 -> 서로 상쇄됨)
void swap(int a, int b);
void swap_addr(int *a, int *b);
int main(void)
{
int a = 10;
int b = 20;
printf("a의 주소 : %d\n", &a);
printf("b의 주소 : %d\n", &b);
//a와 b의 값을 바꾼다.
printf("Swap 함수 전 => a: %d, b : %d\n", a, b);
swap(a, b);
printf("Swap 함수 후 => a: %d, b : %d\n", a, b);
// 값에 의한 복사 (Call by Value) -> 값만 복사한다는 의미
// 주소값을 넘기면? 메모리 공간에 있는 주소값 자체를 넘기면...
printf("(주소값 전달)Swap 함수 전 => a: %d, b : %d\n", a, b);
swap_addr(&a, &b);
printf("(주소값 전달)Swap 함수 후 => a: %d, b : %d\n", a, b);
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);
int main(void)
{
// 배열일 때, arr2 -> 주소
int arr2[3] = { 10, 20, 30 };
//changeArray(arr2);
changeArray(&arr2[0]);
for (int i = 0; i < 3; i++)
{
printf("%d\n", arr2[i]);
}
return 0;
}
void changeArray(int* ptr)
{
ptr[2] = 50;
}
'C언어 > 정리' 카테고리의 다른 글
C 언어 도전기 8 (0) | 2022.07.05 |
---|---|
C 언어 도전기 7 (0) | 2022.07.04 |
C 언어 도전기 5 (0) | 2022.07.03 |
C 언어 도전기 4 (0) | 2022.07.02 |
C 언어 도전기 3 (0) | 2022.06.28 |