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'으로 동일하다고 나온다.