C ++ 변수 유형

변수는 프로그램이 조작 할 수있는 명명 된 저장소를 제공합니다. C ++의 각 변수에는 변수 메모리의 크기와 레이아웃을 결정하는 특정 유형이 있습니다. 해당 메모리 내에 저장할 수있는 값의 범위 변수에 적용 할 수있는 연산 집합입니다.

변수 이름은 문자, 숫자 및 밑줄 문자로 구성 될 수 있습니다. 문자 또는 밑줄로 시작해야합니다. C ++는 대소 문자를 구분하기 때문에 대문자와 소문자는 구별됩니다.

지난 장에서 설명했듯이 C ++에는 다음과 같은 기본 유형의 변수가 있습니다.

Sr. 아니요 유형 및 설명
1

bool

true 또는 false 값을 저장합니다.

2

char

일반적으로 단일 옥텟 (1 바이트)입니다. 이것은 정수 유형입니다.

int

기계에서 가장 자연스러운 정수 크기입니다.

4

float

단 정밀도 부동 소수점 값.

5

double

배정 밀도 부동 소수점 값입니다.

6

void

유형이 없음을 나타냅니다.

7

wchar_t

넓은 문자 유형입니다.

C ++는 또한 다양한 다른 유형의 변수를 정의 할 수 있습니다. 다음 장에서 다룰 것입니다. Enumeration, Pointer, Array, Reference, Data structures,Classes.

다음 섹션에서는 다양한 유형의 변수를 정의, 선언 및 사용하는 방법을 다룹니다.

C ++의 변수 정의

변수 정의는 컴파일러에게 변수에 대해 생성 할 저장소의 위치와 양을 알려줍니다. 변수 정의는 데이터 유형을 지정하고 다음과 같이 해당 유형의 하나 이상의 변수 목록을 포함합니다.

type variable_list;

여기, type char, w_char, int, float, double, bool 또는 사용자 정의 개체 등을 포함한 유효한 C ++ 데이터 유형이어야합니다. variable_list쉼표로 구분 된 하나 이상의 식별자 이름으로 구성 될 수 있습니다. 몇 가지 유효한 선언이 여기에 표시됩니다.

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

라인 int i, j, k;둘 다 변수 i, j 및 k를 선언하고 정의합니다. 컴파일러가 int 유형의 i, j 및 k라는 변수를 생성하도록 지시합니다.

변수는 선언에서 초기화 (초기 값 할당) 할 수 있습니다. 이니셜 라이저는 다음과 같이 등호와 상수 표현식으로 구성됩니다.

type variable_name = value;

몇 가지 예는-

extern int d = 3, f = 5;    // declaration of d and f. 
int d = 3, f = 5;           // definition and initializing d and f. 
byte z = 22;                // definition and initializes z. 
char x = 'x';               // the variable x has the value 'x'.

이니셜 라이저가없는 정의 : 정적 저장 기간이있는 변수는 암시 적으로 NULL로 초기화됩니다 (모든 바이트의 값은 0). 다른 모든 변수의 초기 값은 정의되지 않습니다.

C ++의 변수 선언

변수 선언은 주어진 유형과 이름을 가진 하나의 변수가 존재한다는 보장을 컴파일러에 제공하므로 컴파일러는 변수에 대한 완전한 세부 사항없이 추가 컴파일을 진행할 수 있습니다. 변수 선언은 컴파일시에만 의미가 있으며 컴파일러는 프로그램 연결시 실제 변수 정의가 필요합니다.

변수 선언은 여러 파일을 사용하고 프로그램 링크시 사용할 수있는 파일 중 하나에서 변수를 정의 할 때 유용합니다. 당신은 사용할 것입니다extern어떤 장소에서든 변수를 선언하는 키워드. C ++ 프로그램에서 변수를 여러 번 선언 할 수 있지만 파일, 함수 또는 코드 블록에서 한 번만 정의 할 수 있습니다.

변수가 맨 위에 선언되었지만 주 함수 내부에 정의 된 다음 예제를 시도해보십시오.

#include <iostream>
using namespace std;

// Variable declaration:
extern int a, b;
extern int c;
extern float f;
  
int main () {
   // Variable definition:
   int a, b;
   int c;
   float f;
 
   // actual initialization
   a = 10;
   b = 20;
   c = a + b;
 
   cout << c << endl ;

   f = 70.0/3.0;
   cout << f << endl ;
 
   return 0;
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

30
23.3333

동일한 개념이 선언시 함수 이름을 제공하고 실제 정의를 다른 곳에서 제공 할 수있는 함수 선언에도 적용됩니다. 예를 들면-

// function declaration
int func();
int main() {
   // function call
   int i = func();
}

// function definition
int func() {
   return 0;
}

Lvalue와 Rvalue

C ++에는 두 종류의 표현식이 있습니다.

  • lvalue− 메모리 위치를 참조하는 표현식을 "lvalue"표현식이라고합니다. lvalue는 할당의 왼쪽 또는 오른쪽으로 나타날 수 있습니다.

  • rvalue− rvalue라는 용어는 메모리의 일부 주소에 저장된 데이터 값을 의미합니다. rvalue는 할당 된 값을 가질 수없는 표현식입니다. 이는 rvalue가 할당의 왼쪽이 아닌 오른쪽에 나타날 수 있음을 의미합니다.

변수는 lvalue이므로 할당의 왼쪽에 나타날 수 있습니다. 숫자 리터럴은 r 값이므로 할당 할 수 없으며 왼쪽에 표시 할 수 없습니다. 다음은 유효한 진술입니다-

int g = 20;

그러나 다음은 유효한 문이 아니며 컴파일 타임 오류를 생성합니다.

10 = 20;