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;