#220614 -220615
87-95
초기화가 되어있는 배열을 process라는 함수로 호출!
주소를 스텍에 집어 넣고 접근한다!
✭ 메인 함수와 스텍의 범위가 다르다 ✭

/*비트연산자*/
const unsigned char result = num1 & num2;
/*주소연산자*/
- num 이라는 변수가 있으면 &num은 그 변수가 위치한 메모리 주소! (%p로 출력: 16진수)
- 실행할 때 마다 주소가 달라질 수 있음
printf("Address or num: %p\n", (void*)&num);

⭐️포인터? 주소를 저장하기 위한 '변수' ⭐️
사실은 변수인데 속에 담긴 내용은 '메모리주소'이다.
포인터 변수를 선언할 때 '그 주소에 어떤 형의 데이터가 있는지' 명시하기 위해 포인터 앞에 자료형을 붙임!
[코딩 표준]
int* num_address = #
int* char* float*
void save_address(void)
{
/* num에 저장된 주소가 0x4800 이다!*/
int num = 10;
/* 메모리 차지하는 곳 (0x0400) 에 저장된 메모리 주소 = num의 메모리 주소(0x4800) */
int* num_address = #
}
⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
포인터란? -> 메모리 주소를 저장하는 변수
⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
이 변수는? -> 메모리 어딘가에 저장
num -> a (0x0400) / num_address (0x0400)


1). num에는 10이 들어가있고
& num주소로 가보면 0x 004ffaf8{10} 이라는 주소에 있음
실제 그 메모리로 가면 0a (10)이 들어가 있음
이 주소를 num_address 값에 넣었다
2). num_address
&num_address 의 주소로 들어가봅시다
이 주소로 가보면 0x 004ffaf4 {0x004ffaf8{10}}
00 4f af f8
num_address의 값에는(안에는) num의 주소가 0x004ffaf8{10} 가 들어있음
