-
파이썬 변수 재할당 관련 (+ C언어 변수와 비교?!)학교 공부/파이썬 2020. 12. 29. 17:06
파이썬을 처음 배우고 있는데 헷갈리는 점이 하나 있다.
파이썬은 변수를 재할당할 때마다 메모리 주소가 변한다고 한다. 그런데 C언어는 그렇게 배운 기억이 없어서 혼란이 오고 있다. 😑
https://python-world.tistory.com/entry/python-variable
일단 이 블로그 글을 참고하면, 파이썬의 변수는 C언어와 다르게 자료형을 미리 지정하지도 않고, 실제로는 변수에 값을 할당할 때 값이 저장되어 있는 메모리 주소 정보가 저장된다고 한다. 즉 변수가 포인터 역할을 하는 것 같다. (그래서 파이썬은 무조건 변수에 값을 먼저 할당해야 하는 걸까?)
그에 비해 C언어는 자료형을 먼저 지정하고, 변수를 선언한다. 그리고 선언한 변수의 자료형 크기만큼의 공간을 메모리에 할당해준다..
#include <stdio.h> int main() { int a = 10; printf("%p\n", &a); a = 15; printf("%p\n", &a); int* p; p = &a; printf("%p\n", p); printf("%p\n", &p); }
00AFFD00
00AFFD00
00AFFD00
00AFFCF4☝ 위 코드를 실행한 결과. 변수 a에 값을 새로 할당해도 a의 주소는 변하지 않는다. 파이썬의 경우랑 정확히 같지는 않은 것 같지만 일단...
일단은 여기까지 적고, 파이썬에 더 익숙해진 후에 다시 수정 및 보완하겠다.
(파이썬 공부하면서 적은 것이라 정확하지 않을 수 있음!!)
'학교 공부 > 파이썬' 카테고리의 다른 글
파이썬 tkinter 위젯변수, get(), set() (0) 2021.01.16 과제 1 - 2번 문제 (0) 2021.01.11