본문 바로가기

Programming/온라인 교육

[CS50] 포인터

반응형

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 

 

모두를 위한 컴퓨터 과학 (CS50 2019)

부스트코스 무료 강의

www.boostcourse.org

반응형

'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