강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của blood731
blood731

câu hỏi đã được viết

Lập trình C bắt đầu một cách quyết liệt

Cú pháp cơ bản của mảng

배열강의에서 l-value r-value 관련 궁금한 점이 있습니다.

Đã giải quyết

Viết

·

459

0

안녕하세요

강의 감사히 잘 공부하고 있습니다.

 

배열 강의에서 배열의 이름 int a[4]; 같은 경우 a

이 상수와 같은 r value 에 속한다고 하셨는데,

 

배열 이름은 메모리 상의 데이터 구조를 식별하는 역할을 하며 이는 주소의 불변성과 관련이 있기 때문에 l-value로서 값이 변경되지 않는 특수한 형태로 보는 것이 더 맞지 않나요?

c컴퓨터-구조assembly-languagevc++

Câu trả lời 2

2

배열 이름은 포인터 상수와 같이 취급되기 때문에 r-value가 맞습니다. 주소의 불변성과 관련이 있는 것은 맞지만, "배열 내부의 값 자체의 변경"은 가능하지만 "포인터 주솟값 자체의 변경"은 불가능하기 때문입니다. 즉 가르키고 있는 대상 자체를 변경할 수 없다는 의미에서 배열 이름은 r-value가 맞습니다.

nullnull8537님의 프로필 이미지
nullnull8537
Người chia sẻ kiến thức

와우~~! 고맙습니다. 😄

blood731님의 프로필 이미지
blood731
Người đặt câu hỏi

감사합니다.

0

nullnull8537님의 프로필 이미지
nullnull8537
Người chia sẻ kiến thức

노호연님의 답변을 참고하시면 되겠습니다. 😄
몇 가지 더 이야기를 드리자면....
배열의 이름은 상수입니다. 따라서 그 자체로 이미 r-value 입니다. 보통의 변수이름이 메모리 공간을 의미한다면 배열의 이름은 메모리 공간의 주소에 부여한 것입니다. 비유적으로 말하자면 내 이름(최호성)과 내 주민등록번호에 붙인 이름(널개민번)이라는 차이 정도로 생각하시면 되겠습니다.

blood731님의 프로필 이미지
blood731
Người đặt câu hỏi

감사합니다.

Hình ảnh hồ sơ của blood731
blood731

câu hỏi đã được viết

Đặt câu hỏi