this textbook의 교과서 질문에 답변하고 있습니다.L 값과 C 값의 R 값
저는 C에서 포인터에 대해 배우고 있는데 l 값과 r 값을 발견했습니다. 내 이해에서 :
l-values are values that are defined after they are executed (++x)
r-values are values that are not defined after they are executed (x++)
정확합니까?
나는 (내 시도에) 대답하고 싶었 질문 :
a) Which of the following C expressions are L-Values?
1. x + 2 Not a L value
2. &x Is a L value
3. *&x Is a L value
4. &x + 2 Not a L value
5. *(&x + 2) Is a L value
6. &*y Is a L value
b) Is it possible for a C expression to be a L-value but NOT a R-value? Explain
I've read that a L value can be a R value but not vice versa. I can't think of an example of something being an L value but not a R value.
c) Is &(&z) ever legal in C? Explain
Assuming this is not legal since a memory address doesn't have its own memory address?
내가 닫나요? 감사합니다
를 : C++를 ]? –
BTW C 및 C++의 * 값 범주 *는 거의 동일한 최종 효과를 갖지만 매우 다른 경로를 통해 거기에 도달합니다. 두 가지 모두에 적용되는 설명이 없을 것입니다. 이와 같은 질문은 하나의 언어를 선택해야합니다. –
@BenVoigt : OP가 그가 C에 대해 배우고 있다고 말했기 때문에 C++ 태그를 삭제했습니다. –