작성
·
301
0
강의 내용 중, 메모리 공간과 주소, 객체지향에 대한 언급이 나와 질문 드립니다.
다른 언어에 대한 이야기이긴 하지만,
제가 파이썬부터 공부하여 이로 예시를 들자면
a=1
print(id(a))
a+=1
print(id(a))
파이썬에서는 위 결과 a의 주소값이 다르게 나오고,
c 에서는
int a = 1;
printf("%d", &a);
a += 1;
printf("%d", &a);
위 a의 주소값이 같게 나오는데,
파이썬은 int 1 객체, int 2 객체가 각자 다른 객체로 다른 주소 가지고
변수명은 그걸 가르키는 라벨,
c 는 변수명이 메모리 주소를 직접 가르키는 형태.
라고 이해한 것이 맞는지 여쭙고 싶습니다.
위의 차이가 맞다면, 그게 객체지향과 객체지향이 아님의 차이인건가요?
파이썬으로 먼저 변수의 개념을 접하여 C에서의 변수의 개념에 혼동이 있는 듯 합니다ㅠㅠ
답변 2
0
0
안녕하세요.
파이썬에 대해선 제가 잘 몰라서 도움 드리기가 힘들 것 같네요..ㅠㅜ
이런 자료들을 찾아보시고 읽어보시면 이해가 되시지 않을까 싶습니다.
"c 는 변수명이 메모리 주소를 직접 가르키는 형태."라고 말할 수 있는지는 잘 모르겠지만 일단 C/C++ 언어에서는 변수명이 메모리를 대표하는 느낌인 것은 맞습니다! C에선 같은 범위 내에서 a라는 변수를 사용한다면 동일한 그 a 메모리를 언급하고 있는게 맞습니다.
객체지향 O/X의 차이라기엔 객체지향 언어인 C++도 C와 이 부분은 같기 때문에 아닌 것 같구요! C계열 언어와 Python 언어의 차이라고 보여집니다.