반응형
C에는 포인터 라는 개념을 통해서 변수의 주소를 쉽게 저장하고 접근할 수 있다.
‘*’ 연산자는 어떤 메모리 주소에 있는 값을 받아오게 해준다.
이 연산자를 이용해서 포인터 역할을 하는 변수를 선언할 수도 있다.
#include <stdio.h>
int main(void)
{
int n = 50;
int *p = &n;
printf("%p\n", p);
printf("%i\n", *p);
}
결과)
0x7ffc3d293cdc
50
위 코드를 보면 정수형 변수 n에는 50이라는 값이 저장되어 있다.
그리고 *p라는 포인터 변수에 &n 이라는 값, 즉 변수 n의 주소를 저장했다.
int *p 에서 p앞의 *는 이 변수가 포인터라는 의미이고, int 는 이 포인터가 int 타입의 변수를 가리킨다는 의미이다.
따라서 첫 번째 printf문과 같이 포인터 p의 값, 즉 변수 n의 주소를 출력하거나, 두 번째 printft문과 같이 포인터 p가 가리키는 변수의 값, 즉 변수 n의 값을 출력할 수도 있다.
출처
https://www.boostcourse.org/cs112/lecture/119032/?isDesc=false
반응형
'Programming > 온라인 교육' 카테고리의 다른 글
[CS50] 메모리 구조 (0) | 2021.12.06 |
---|---|
[CS50] 문자열 (0) | 2021.12.06 |
[CS50] 메모리 (0) | 2021.12.06 |
[CS50] 알고리즘 (0) | 2021.12.03 |
[CS50] 문자열 (0) | 2021.12.02 |