2014-11-01 1 views
1

저는 프로그래밍 priciples을 사용하여 C++ 프로그래밍 언어를 공부하고 C++을 사용하여 연습합니다. 지금은 4 장과 책이 표현의 개념을 도입이 장에서,하지만 난 그것을 전혀 이해할 수 없다 :리터럴이 C++에서 표현식으로 간주되는 이유는 무엇입니까?

프로그램에서 가장 기본적인 빌딩 블록은 표현이다. espression은 여러 피연산자의 값을 계산합니다. C++에서 가장 단순한 표현은 11, 'c', 'hello'와 같은 리터럴 값입니다. 변수 이름도 표현식입니다. 변수는 이름을 나타내는 객체를 나타냅니다.

리터럴이 표현식으로 간주되는 이유는 무엇입니까? 변수의 이름이 표현식으로 간주되는 이유는 무엇입니까?

+3

표현식은 값이있는 모든 것입니다. –

+0

@OliverCharlesworth : 해당 값의 유형이 'void'인 경우에도. – Deduplicator

+4

"이 질문은 더 이상 재현 할 수없는 문제 또는 간단한 인쇄상의 오류로 인한 것입니다." 분명히 시스템을 오용하고 있습니다. 이는 재현 할 수없는 문제 또는 인쇄상의 오류로 인한 것이 아니며, 사실 계속 머물러야 할 완벽하게 유효한 질문이라고 생각하는만큼 갈 것입니다. – hvd

답변

4

표현식 - 수학에서 프로그래밍 언어로, 언어학 - 구성 적으로 (또는 유도 적으로) 정의됩니다. 표현식은 종종 x*2+y*4과 같은 하위 표현식으로 이루어지며 두 개의 하위 표현식 x*2y*4이 더하기 연산자 +으로 결합되어 있습니다.

하지만 기본 케이스 (가장 단순하고 간단한 표현식)가 필요합니다. 이들은 리터럴 (2)과 변수 (x)입니다. 두 경우 중 하나가 표현식이 아닐 경우 은 표현식이 될 수 없습니다 (이진 곱셈 *의 피연산자는 모두 하위 표현식이므로).

공지 C 및 C++ 할당기능는 표현이 같은 그것의

+0

왜 변수 이름이 표현식입니까? 이해할 수는 없지만 리터럴을 이해하지만 내 책의 lvalue 및 rvalu 항목은 나를 혼란스럽게합니다. 변수는 리터럴과 같은 피연산자로 사용할 수 있기 때문에 표현식입니까? –

+0

@pieroborrelli 책에서 잘못된 값으로 lvalue 및 rvalue라는 용어를 사용하는 경우가 매우 많습니다. 제가 사용하고있는 책이 무엇인지, 그리고 그것이 lvalue와 rvalue라는 용어를 정의하는 방법을 물어봐도 될까요? – fredoverflow

+0

@FredOverflow 내 책은 프로그래밍 원리와 C++을 사용하는 연습입니다. lvalue의 정의는 예를 들어, 변수 왼쪽에있는 변수의 lvalue (해당 변수에 의해 명명 된 상자)를 사용할 때입니다. 할당의 오른쪽에 해당 변수의 rvalue (객체의 값) 인 변수를 넣습니다. –

2

생각해 있습니다 호출하는 : 표현식은 값을 생성하는 일련의 단계입니다. 따라서 4+3은 (1) 숫자 4으로 시작하고 (2) 3을 추가하기 때문에 2 단계 식입니다. (1) 수 7 시작 : 수행 한 "액션"만 있기 때문에 이에

, 7을하는 단일 단계 시퀀스로서 간주 할 수있다.

따라서, a = 4+3;a = 7;은 모두 a = <expression>;으로 일반화 될 수있다.

+1

C는 표현식이 순서의 * 순서 *가 아니기 때문에 시퀀스 포인트를 정확하게 가지고 있습니다. 그렇지 않으면'(++ i) - (i -)'또는'printf ("% d % d \ n", i ++, i ++)'는 정의되지 않은 행동이 아니다. –

1

표현식은 "연산을 지정하는 연산자와 피연산자의 시퀀스"입니다 (http://en.cppreference.com/w/cpp/language/expressions).

간단한 표현 보자 :이 식을 계산할 때 3 + 3, 당신은 결과를 얻을 수를 6

그래서 다른 표현 보자 :이 식을 계산할 때 3, 당신은 결과를 얻을 것이다 3.

리터럴은 리터럴이 상수의 한 유형이고 상수는 고정 값을 가진 표현식이기 때문에 표현식으로 간주됩니다.

변수는 다른 표현식의 피연산자로 사용할 수도 있고 자체적으로 표현식으로 사용할 수도 있기 때문에 표현식으로 간주됩니다.

소프트웨어 디자인에서는 합성 패턴을 표현의 표현으로 사용할 수 있습니다.

관련 문제