• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

객체에 대하여 질문 드립니다.

21.01.06 18:33 작성 조회수 224

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

m1n_q님의 프로필

m1n_q

질문자

2021.01.15

답변 감사드립니다 ㅎㅎ!!

0

안소님의 프로필

안소

2021.01.06

안녕하세요.

파이썬에 대해선 제가 잘 몰라서 도움 드리기가 힘들 것 같네요..ㅠㅜ

이런 자료들을 찾아보시고 읽어보시면 이해가 되시지 않을까 싶습니다. 

"c 는 변수명이 메모리 주소를 직접 가르키는 형태."라고 말할 수 있는지는 잘 모르겠지만 일단 C/C++ 언어에서는 변수명이 메모리를 대표하는 느낌인 것은 맞습니다! C에선 같은 범위 내에서 a라는 변수를 사용한다면 동일한 그 a 메모리를 언급하고 있는게 맞습니다.

객체지향 O/X의 차이라기엔 객체지향 언어인 C++도 C와 이 부분은 같기 때문에 아닌 것 같구요! C계열 언어와 Python 언어의 차이라고 보여집니다.