논리적 설명 바래요,
C언어 Pointer 가르칠때, Lvalue Rvalue 이거 왜하나요?
램프로그(112.160)
2020-03-20 13:50
추천 0
댓글 30
다른 게시글
-
c++ include랑 전역변수 많이 쓰면 안좋음? [4]익명(175.115) | 20.03.20추천 0
-
우한 코로나지만 야외운동커뮤앱 제작 재개함 [5]익명(1.240) | 20.03.20추천 0
-
대학에서 쓰이는것만 배운다는 마음가짐은 안좋다고생각해 [1]익명(61.79) | 20.03.20추천 0
-
deno는 node할줄 알면 따로 익힐 필요 없겠지?공부중인학..(nevelsub) | 20.03.20추천 0
-
무현님 갤질을 20분에 한번은 하시는데 공부 하는거맞나요?익명(223.38) | 20.03.20추천 0
-
와화석새끼들이 요즘애들은 행렬모른다고 무시하던게이런느낌 [3]익명(61.79) | 20.03.20추천 0
-
21학번이 쌍곡선,포물선,타원 이런것도 모른다고생각하니까 [3]익명(61.79) | 20.03.20추천 0
-
애초에 모르는 사람들 말 듣고 자기 진로 결정한다는거부터가 [3]공부중인학..(nevelsub) | 20.03.20추천 0
-
그런데 신입생들이 삼수선의정리도 모른다고생각하니 [3]익명(61.79) | 20.03.20추천 0
-
수능에서 기벡사라지는거로 지랄하는거보면웃긴다진짜익명(61.79) | 20.03.20추천 0
그게뭐죠?
정보) 그걸 알면 위키의 포인터 궤변을 쉽게 논파 가능함
추상적 관점에선 expression과 statements를 구별하기 위해서입니다 - dc App
물리적 관점에서는 value와 literal을 구별하기 위해서구요 - dc App
변수랑 리터럴이랑 다른거예요?
다르죠...... - dc App
그럼 리터럴이 뭐예요?
표현식 상태죠 - dc App
더헷갈리는데 변수,상수 이거만 아는데 벨류 리터럴 다 같은 데이타 같은데
데이타를, 변수,상수,리터럴,벨류 차이점 뭔지 명확하게좀 애매한거 시러요
아니 좋은 예가 아닌거같고 - dc App
문제가 이해를 돕기위해서 리터럴이라는 용어를 쓰는데, 용어 자체가 애매한데, 뭐죠?
변수(variable)와 상수(value)는 유저가 정의한 메모리에 지정되는 값입니다. 변수는 값을 바꿀 수 있고 상수는 값을 바꿀 수 없습니다. - dc App
리터럴은 '문자 그대로' 라는 뜻이고, "hello" 라거나 9 같은 데이터 자체를 의미함
리터럴은 유저가 정의하지 않고 컴파일러가 정의하고 있는 표현식을 구성하기 위한 식별값입니다. 정수형이라면 숫자가 될 수 있고 문자열이라면 A~z같은 글자들이 될 수 있을 것입니다 - dc App
int a = 8; 에서 a는 변수이고, 8은 리터럴.
컴파일러는 expression이라는 단위로 우리가 시키는 연산을 수행해 최종 결과를 Literal로 만듭니다. - dc App
그리고 대입연산자(=)는 변수와 상수에 리터럴을 대입시킴으로써 값을 정의하게 돕는 연산자입니다. 이때 왼쪽에 위치한 식별자가 L value 오른쪽에 위치한 식별자가 R value입니다. - dc App
데이타나 벨류나, 리터럴이나 같은 말인가요
이제 원래 질문으로 돌아와볼게요. Lvalue와 Rvalue는 유저가 정의한 메모리와 컴파일러가 판별하기 위한 값을 구분하기 위한 집합에 불과하구요. 포인터는 Lvalue가 다른 Lvalue의 주소를 Rvalue로 기억해 *연산자나 ->연산자를 통해 해당 주소로 워프할 수 있는 기능이 있습니다. 이를 설명하기위해 언급된듯 한데 - dc App
별로 좋은 시점은 아닙니다. 그냥 lvalue에 rvalue가 배치되는 시점이 하나의 statement고 rvalue는 expression(최종적으로 하나의 값으로 판별되는 표현식)으로 이루어질 수 있다고 생각하시면 됩니다. - dc App
데이터는 보통 디스크에 schema로 저장되는 상태의 값을 지칭할때 쓰구요.(분야마다 다릅니다.) value는 constant variable로 정의할 수 있기 때문에 함부로 literal과 동일하다고 얘기해선 안됩니다. - dc App
그러니깐 values 를 lvalue 하고 literal 으로 구분한다는 거 같은데.. 제말이 명확한가여?
저는 values 를 좁은의미의 literal 로 그냥 쓰고, 변수라는 용어로 사용했는데, values 의 개념을 확장시키고 variable, literal 구분한거같음
아뇨 집합그림으로 그리면 lvalue는 가장 바깥에 있습니다. c로 치면 const int x와 같은 상수가 value가 될 수 있고 3*7-21 과 같은 표현식이 리터럴이 될 수 있습니다 - dc App
그러니까 lvalue는 수학에서 x,y,z 같은거라고 생각하시면 편하실 거 같네요. - dc App
Rvalue는 왼쪽(L)도 있으니까 오른쪽(R)도 있겠네라는 드립일뿐 사실 Lvalue만 확실하게 알면 됨
char *someStr = "hello"; "hello world!" = someStr; 이러한 대입이 안되잖음. 스트링 리터럴은 Lvalue가 아니기때문이고
설명을 더 자세히 못하겠다 나는
parser - dc App