Python

[hello. py] C언어와 Python의 메모리 관리 차이점

Jueun Park 2020. 9. 3. 15:17

Python은 C언어랑 메모리 사용 방식이 다르다.

 

요약그림

 

C언어의 경우 int형 변수 a와 b를 만들고 나서 이 둘의 주소를 찍어보면

서로 다른 주소가 나온다.

같은 값을 할당해도 결과는 마찬가지.

[   30   ]    [   30   ]

     ⬆︎              ⬆︎

[    a    ]     [    b    ]

그런데 파이썬에서 똑같이 실행하면 같은 주소 값이 나온다.

          [   30   ]

      ⬈                 

[    a    ]     [    b    ]

여기서 a나 b의 값을 바꾸면

바뀌 값이 있는 다른 주소를 b가 가리키게 되고

id(b)의 결과값이 달라진다.

 

원래 C언어에서의 배열에서는

배열 a의 주소값과 배열 a의[0]번째 요소의 주소값이 같았다.

그런데 파이썬에서는 주소값이 다르다.

그리고 a의 [1]번째 요소와 [3]번째 요소가 값이 '3'으로 같은 것을 볼 수 있는데

이 두 요소의 주소가 '4556723840'으로 동일하다고 나온다.