공유 연습장
// 주소가 들어갈 변수 : 포인터 변수 == 주소를 담을 변수
int *p_int_val; // * 은 포인터 변수라는 뜻
// 주소가 정수라는 뜻 보다는, 이 변수의 주소 값이 정수라는 숫자가 들어가있다.
double *p_dou_val; //
char *p_ch_val; //
// 변수에 값을 넣기
p_int_val = &int_val; // &int_val 주소를 포인터 변수에 넣겠다.
p_dou_val = &dou_val;
p_ch_val = &ch_val;
printf("---2--\n");
printf("%d %d\n", &int_val, p_int_val); //
printf("%d %d\n", &dou_val, p_dou_val);
printf("%d %d\n", &ch_val, p_ch_val); // .
// 일반 변수에 포인터 주소를 넣어보기
printf("일반 변수에 포인터 주소를 넣어보기\n");
int int_val2; // 일반 변수를 선언
int_val2 = &int_val; // 일반 변수에 &포인터 넣기
printf("%d \n", int_val2); // 원래는 안된다는데,,, 컴파일하고 실행하는데 오류or문제발생이 되지않는다면 괜찮은거 아닌가?..
// 크기 찍어보기
printf("2번의 크기 찍어보기 ----\n");
printf("%d %d\n", sizeof(&int_val), sizeof(p_int_val)); //
printf("%d %d\n", sizeof(&dou_val), sizeof(p_dou_val));
printf("%d %d\n", sizeof(&ch_val), sizeof(p_ch_val)); //
// 결과 : 8 ==> 64bit 운영체제를 쓰기 때문에 8byte가 나온다.
// 주소의 크기는 같다. (size) 주소는 무엇을 담든 상관없이 주소의 크기는 8byte로 세팅 되어 있다.
// 어떤 자료형을 갖고 있던 주소의 크기는 8byte.
-----1---------
-272632548
-272632560
-272632561
-arr 배열의 주소-
-272632528[0번]
-272632524[1번]
-272632520[2번]
-272632516[3번]
-272632512[4번]
arr의 배열명 주소 : -272632528
---2--
-272632548 -272632548
-272632560 -272632560
-272632561 -272632561
일반 변수에 포인터 주소를 넣어보기
-272632548
2번의 크기 찍어보기 ----
8 8
8 8
8 8
Program ended with exit code: 0
댓글