문제

"문자"라는 단어는 문자 그대로 문자열과 문자 그대로 값과 같은 맥락에서 사용될 때 무엇을 의미합니까?

문자 적 가치와 가치의 차이점은 무엇입니까?

도움이 되었습니까?

해결책

문자가 "모든 표기법입니다 대표 소스 코드 내의 값 "(위키 백과)

(이것을 대조하십시오 식별자, 어느 나타내다 메모리의 값으로.)

예 :

  • "hey" (문자열)
  • false (참이나 거짓)
  • 3.14 (실수)
  • [1,2,3] (숫자 목록)
  • (x) => x*x (함수)
  • /^1?$|^(11+?)\1+$/ (regexp)

리터럴이 아닌 몇 가지 :

  • std::cout (식별자)
  • foo = 0; (진술)
  • 1+2 (표현)

다른 팁

리터럴은 소스에 직접 하드 코딩 된 값입니다.

예를 들어:

string x = "This is a literal";
int y = 2; // so is 2, but not y
int z = y + 4; // y and z are not literals, but 4 is
int a = 1 + 2; // 1 + 2 is not a literal (it is an expression), but 1 and 2 considered separately are literals

일부 리터럴은 특수 구문을 가질 수 있으므로 문자가 어떤 유형인지 알 수 있습니다.

//The 'M' in 10000000M means this is a decimal value, rather than int or double.
var accountBalance = 10000000M; 

변수 나 리소스와 차별화하는 것은 컴파일러가 변수를 상수로 취급하거나 사용되는 코드로 특정 최적화를 수행 할 수 있다는 것입니다.

리터럴은 다음과 같은 명시적인 가치에 대한 과제입니다.

int i = 4;  // i is assigned the literal value of '4'
int j = i   // j is assigned the value of i.  Since i is a variable,  
            //it can change and is not a 'literal'

편집 : 지적한 바와 같이, 과제 자체는 문자의 정의와 관련이 없으며, 나는 내 예에서 과제를 사용하고 있었지만 문자를 메소드 등으로 전달할 수도 있습니다.

리터럴은 소스 코드에 값을 포함시킬 때입니다 (변수 또는 상수를 참조하는 것과 반대로). 예를 들어:

int result = a + 5; // a is a variable with a value, 5 is a literal

string name = "Jeff Atwood"; // name is a variable initialized
                             // with the string literal, "Jeff Atwood"

int[] array = new int[] {1, 2, 3}; // C# has array literals (this is actually three
                                   // int literals within an array literal)

문자가 물리적 상수와 같이 일부 수량을 나타내는 경우 필요한 곳마다 같은 문자를 쓰는 대신 이름을 부여하는 것이 좋습니다. 그렇게하면 소스 코드를 읽을 때 숫자가 무엇인지 알 수 있습니다. 수단, 그것은 일반적으로 그 가치보다 더 중요합니다 (어쨌든 변경할 수 있음).

const int maxUsers = 100;
const double gravitationalAcceleration = 9.8;

일반적으로 내가 사용하는 유일한 숫자 리터럴 (위와 같은 상수를 초기화하는 것 외에도)은 0 또는 1이며 때로는 다른 모든 항목을 루프로 건너 뛰는 경우 2입니다. 만약 의미 숫자의 숫자는 실제보다 중요합니다 (보통), 이름을 지정하는 것이 좋습니다.

문자 적 가치 a 값이지만 값은 변수에도 저장 될 수 있습니다. 성명서에서

string str = "string literal";

문자열 변수 (str)와 문자열 리터럴이 있습니다. 성명서가 실행 된 후 둘 다 동일한 값을 갖습니다.

많은 언어에서 변수와 문자 값이 반드시 같은 유형 일 필요는 없습니다. 예를 들어:

int a = 1.0;

위의 문자 값은 부동 소수점 유형입니다. 값은 int 변수에 맞도록 컴파일러에 의해 강요됩니다.

다른 예를 위해, 문자열 문자 유형 위의 C ++ 코드의 첫 번째 줄에서 실제로 라이브러리 유형이 아닙니다. string 조금도. C와의 거꾸로 호환성을 유지하려면 C ++의 문자열 리터럴은 숯 어레이입니다.

: 빠른 예 : 예 : : : : 예 : : 예 : : 예 : : 예 : : 예 : : 예 : 예 : : 예 : : 예 : 예 : : 예 : 예 : : 예 : 예 : : 예 : 예 : : 예 : 예 : : 예 : 예 : : 예 : 예 : : 예 : 예 : : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : 예 : : 예 : : 예 : : 예 : 예)

int my_int_var = 723;

723-이 문자 세트는 a 정확한 정수 가치.

my_int_var-이 문자 세트는 a를 나타냅니다 변하기 쉬운 정수 가치.

리터럴은 코드에 넣을 때입니다. 그래서 문자열 문자는입니다

string s = "SomeText";

이것은 문자열을 구축하거나 매개 변수로 가져가는 것과 반대입니다.

일반적으로 누군가가 문자 단어를 사용하는 경우 다른 게시물의 많은 예제에서 볼 수 있듯이 코드 (텍스트)에서 값이 해독 될 수 있음을 의미합니다.

또 다른 일반적인 사용법은 어셈블리의 즉각적인 값으로 변환되는 값에 대한 것입니다. 이 값은 레지스터로드를 요구하지 않고 기계 명령에 직접 삽입되는 값입니다.

나는 끈 리터럴이 우연히 사용하여 C# 사양 실제로 구두 문자 리터럴을 나타냅니다. 일반 문자열 리터럴을 사용하면 탭의 t와 같이 특정 문자 (a로 접두사)를 탈출 할 수 있습니다. 구절 문자열 문자는 @에 의해 선불되고 처리 된 구두는 특별한 의미가 없습니다.

//regular
string regular = "\thello world";
//verbatim
string verbatim = @"C:\";
//the regular equivalent of this would be "C:\\"

리터럴은 "데이터의 소스 코드 표현"입니다.

리터럴은 언어가 너무 중요하거나 기본적으로 고려하여 구문 설탕을 전용으로 고려하는 특정 유형의 값에 대한 속기 표기법입니다.

값이 종종 리터럴로 표시되는 유형의 예 :

Boolean = { true, false }
Integer = { ..., -2, -1, 0, 1, 2, ... }
Character = { 'a', 'b', ... }
String = { "hello", "world", ... }

일부 언어에는 있습니다 리터럴 기능 유형의 경우에도 :

Integer -> Integer = { (x: Integer) => x + 2), (x: Integer) => x/2, ...}

리터럴로 표시되지 않는 값의 예는 클래스 유형의 값입니다.

Car(brand: String, seats: Integer) = { Car("BMW", 5), Car("Ferrari", 2), ...}

여기 값 Car("BMW", 5) 유형에서 Car 실제로 일련의 기호를 사용하여 고유하게 표시되지만, 값은 전용 속기 문자를 사용하여 표현되지 않고 대신 클래스 유형의 값을 표시하기 위해 일반적인 (Verbose) 개념 메커니즘을 사용합니다.

용어 정확한 용어와 동의어입니다 , 사례, 끊임없는, 회원, 그리고 요소 유형의 유형이지만, 우리에게 그것을 적어 놓을 수있는 속기가 있음을 알려주는 약간의 추가 의미를 전달합니다.

나는 개념을 표현하기 위해 알파벳에서 캐릭터를 함께 묶는 것이 아니라 리터럴을 이집트 상형 문자로 생각하고 싶습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top