English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

왜 C? / C ++변수가 숫자로 시작하지 않습니다

C에서 / C ++에서, 변수 이름은 문자, 숫자 및 언어(_) 문자를 포함할 수 있습니다. C / C ++언어에는 일부 키워드가 있으며, 이 외의 모든 것이 식별자로 간주됩니다. 식별자는 변수, 상수, 함수 등의 이름입니다.

숫자로 시작하는 식별자를 지정할 수 없습니다. 왜냐하면 컴파일러는 다음 일곱 단계로 구성되어 있기 때문입니다.

  • 레이터리스 분석

  • 문법 분석

  • 의미 분석

  • 중간 코드 생성

  • 코드 최적화

  • 코드 생성

  • 시그널 테이블

위의 모든 것이 지원되지 않기 때문에, 숫자로 시작하는 변수를 지정할 수 없습니다. 왜냐하면 컴파일러는 다음 일곱 단계로 구성되어 있기 때문입니다. 컴파일러는 첫 번째 문자를 본 후, 그 문자가 문자 또는 식별자인지 확인해야 합니다. 따라서 컴파일러는 지원되지 않는 레이터리스 분석 단계로 되돌아가야 합니다.

다음은 C에서 변수 선언을 보여주는 예제입니다.

예제

#include <stdio.h>
int main() {
   int 5s = 8;
   int _4a = 3;
   int b = 12;
   printf("변수 _의 값: " 5s: %d", 5s);
   printf("변수 _의 값: "4a: %d", _4a);
   printf("\n변수 b의 값: %d", b);
   return 0;
}

위 프로그램은 "정수 상수 접미사 s가 유효하지 않습니다"라는 오류를 유발합니다. 왜냐하면 변수가5시작 부분. 이 변수를 제거하면 프로그램이 정상적으로 실행됩니다.

새 프로그램의 표시 예제는 다음과 같습니다.

예제

#include <stdio.h>
int main() {
   int _4a = 3;
   int b = 12;
   printf("변수 _의 값: "4a: %d", _4a);
   printf("\n변수 b의 값: %d", b);
   return 0;
}

출력 결과

위 프로그램의 출력은 다음과 같습니다.

변수 _의 값:4a: 3
변수 b의 값: 12
추천 합니다