기본 정수 데이터 유형. 부동 소수점 유형(float, double 및 long double)

마지막 업데이트: 2017년 11월 13일

많은 프로그래밍 언어와 마찬가지로 C#에는 변수를 만드는 데 사용되는 자체 데이터 형식 시스템이 있습니다. 데이터 유형은 데이터의 내부 표현, 개체가 취할 수 있는 값 집합, 개체에 대해 수행할 수 있는 허용되는 작업을 정의합니다.

C# 언어에는 다음과 같은 기본 데이터 형식이 있습니다.

    bool : true 또는 false 값을 저장합니다(부울 리터럴). 시스템 유형 System.Boolean으로 표시

    bool live = true; 부울 isDead = 거짓;

    byte : 0부터 255까지의 정수를 저장하고 1byte를 차지한다. 시스템 유형 System.Byte로 표시됩니다.

    바이트 비트1 = 1; 바이트 bit2 = 102;

    sbyte : -128에서 127 사이의 정수를 저장하고 1바이트를 차지합니다. 시스템 유형 System.SByte로 표시

    바이트 비트1 = -101; sbyte bit2 = 102;

    short : -32768에서 32767 사이의 정수를 저장하고 2바이트를 차지합니다. 시스템 유형 System.Int16으로 표시

    짧은 n1 = 1; 짧은 n2 = 102;

    ushort : 0에서 65535 사이의 정수를 저장하고 2바이트를 차지합니다. 시스템 유형 System.UInt16으로 표시

    짧은 n1 = 1; ushort n2 = 102;

    int : -2147483648에서 2147483647 사이의 정수를 저장하고 4바이트를 사용합니다. System.Int32 시스템 유형으로 표시됩니다. 모든 정수 리터럴은 기본적으로 int 유형의 값을 나타냅니다.

    정수 = 10; 정수 b = 0b101; // 이진 형식 b = 5 int c = 0xFF; // 16진수 형식 c = 255

    uint : 0에서 4294967295 사이의 정수를 저장하고 4바이트를 사용합니다. 시스템 유형 System.UInt32로 표시

    단위 a = 10; 단위 b = 0b101; 단위 c = 0xFF;

    long : -9 223 372 036 854 775 808에서 9 223 372 036 854 775 807 사이의 정수를 저장하고 8바이트를 차지합니다. 시스템 유형 System.Int64로 표시

    긴 a = -10; 긴 b = 0b101; 긴 c = 0xFF;

    ulong : 0에서 18446744073709551615까지의 정수를 저장하고 8바이트를 사용합니다. 시스템 유형 System.UInt64로 표시

    긴 a = 10; 울롱비 = 0b101; 울롱 c = 0xFF;

    float : -3.4*1038에서 3.4*1038 사이의 부동 소수점 수를 저장하고 4바이트를 사용합니다. 시스템 유형 System.Single로 표시

    double : ±5.0*10 -324 ~ ±1.7*10308의 부동 소수점 수를 저장하고 8바이트를 차지합니다. 시스템 유형 System.Double로 표시

    decimal : 십진수 소수를 저장합니다. 소수점 없이 사용할 경우 ±1.0*10 -28 ~ ±7.9228*10 28 의 값을 가지며 소수점 이하 28자리까지 저장할 수 있으며 16바이트를 차지합니다. 시스템 유형 System.Decimal로 표시

    char : 단일 유니코드 문자를 저장하고 2바이트를 차지합니다. System.Char 시스템 유형으로 표시됩니다. 문자 리터럴은 다음 유형에 해당합니다.

    문자 a = "A"; 문자 b = "\x5A"; 문자 c = "\u0420";

    string : 유니코드 문자 집합을 저장합니다. 시스템 유형 System.String으로 표시됩니다. 문자 리터럴은 이 유형에 해당합니다.

    문자열 안녕하세요 = "안녕하세요"; 문자열 단어 = "세계";

    object : 모든 데이터 유형의 값을 저장할 수 있으며 32비트 플랫폼에서 4바이트, 64비트 플랫폼에서 8바이트를 차지합니다. 다른 모든 .NET 형식 및 클래스의 기본 형식인 System.Object 시스템 형식으로 표시됩니다.

    개체 a = 22; 객체 b = 3.14; 개체 c = "안녕하세요 코드";

예를 들어, 유형이 다른 여러 변수를 정의하고 해당 값을 콘솔에 출력해 보겠습니다.

시스템 사용; 네임스페이스 HelloApp ( 클래스 Program ( static void Main(string args) ( string name = "Tom"; int age = 33; bool isEmployed = false; 이중 가중치 = 78.65; Console.WriteLine($"Name: (name)")); Console.WriteLine($"나이: (나이)"); Console.WriteLine($"가중: (체중)"); Console.WriteLine($"고용: (isEmployed)"); ) ) )

콘솔에 데이터를 출력하기 위해 여기에서 보간이 사용됩니다. $ 기호가 문자열 앞에 배치되고 그 후에 변수 값을 중괄호 안에 문자열에 입력할 수 있습니다. 프로그램의 콘솔 출력:

이름: Tom 나이: 33 체중: 78.65 근무: False

접미사 사용

값을 할당할 때 다음과 같은 미묘함을 염두에 두십시오. 모든 실제 리터럴은 double 유형의 값으로 처리됩니다. 그리고 분수가 부동 소수점 형식 또는 십진수 형식을 나타냄을 나타내려면 리터럴에 접미사를 추가해야 합니다. F / f - 부동 소수점 및 M / m - 십진수입니다.

마찬가지로 모든 정수 리터럴은 int 유형의 값으로 처리됩니다. 정수 리터럴이 uint 유형의 값을 나타냄을 명시적으로 나타내려면 U/u 접미사를 사용하고 long에는 L/l을, ulong에는 UL/ul을 사용합니다.

단위 a = 10U; 긴 b = 20L; 울롱 c = 30UL;

시스템 유형 사용

위에서 모든 기본 데이터 유형을 나열할 때 각각에 대해 시스템 유형을 언급했습니다. 기본 제공 유형의 이름은 본질적으로 시스템 유형의 약칭이기 때문입니다. 예를 들어 다음 변수는 유형이 동일합니다.

정수 = 4; System.Int32 b = 4;

암시적 입력

이전에는 변수 유형을 명시적으로 지정했습니다(예: int x; . 그리고 컴파일러는 시작할 때 x가 정수 값을 저장했다는 것을 이미 알고 있었습니다.

그러나 암시적 입력 모델을 사용할 수도 있습니다.

Var hello = "Hell to World"; 변수 c = 20; Console.WriteLine(c.GetType().ToString()); Console.WriteLine(hello.GetType().ToString());

암시적 입력의 경우 데이터 유형 이름 대신 var 키워드가 사용됩니다. 그런 다음 컴파일하는 동안 컴파일러 자체에서 할당된 값을 기반으로 데이터 유형을 유추합니다. 위의 예에서는 Console.WriteLine(c.GetType().ToString()); , 이를 통해 추론된 변수 유형을 알 수 있습니다. c. 기본적으로 모든 정수 값은 int 유형의 값으로 처리되므로 결국 변수 c는 int 또는 System.Int32 유형이 됩니다.

이러한 변수는 일반 변수와 유사하지만 몇 가지 제한 사항이 있습니다.

먼저 암시적으로 유형이 지정된 변수를 먼저 선언한 다음 초기화할 수 없습니다.

// 이 코드는 int a; a = 20; // 이 코드는 작동하지 않습니다. var c; c=20;

둘째, 암시적으로 유형이 지정된 변수의 값으로 null을 지정할 수 없습니다.

// 이 코드는 작동하지 않습니다. var c=null;

값이 null이므로 컴파일러는 데이터 유형을 유추할 수 없습니다.

이중 또는 소수

위에 나열된 데이터 유형 목록에서 프로그램에서 최대 256개의 숫자를 사용하려는 경우 byte 유형의 변수를 사용하여 저장할 수 있음이 분명합니다. 큰 값을 사용할 때 short, int, long 유형을 사용할 수 있습니다. 분수에 대해서도 동일 - 일반 분수의 경우 float 유형을 사용할 수 있으며 매우 큰 분수의 경우 double 유형을 사용할 수 있습니다. 여기서 10진수 형식은 double 형식보다 크지만 double 형식이 더 큰 값을 저장할 수 있다는 점에서 두드러집니다. 그러나 소수 값은 최대 28개의 소수 자릿수를 포함할 수 있고 이중 값은 15-16개의 소수 자릿수를 포함할 수 있습니다.

십진수는 재무 계산에 더 자주 사용되는 반면 이중은 수학 연산에 사용됩니다. 이 두 유형의 일반적인 차이점은 다음 표에 요약할 수 있습니다.

답변:
  1. 정수 데이터 유형:

short int , unsigned short int , int , unsigned int , long , unsigned long .

  1. 부동 소수점 데이터 유형(실제 유형에 해당):

float , double , long double .

  1. 문자 데이터 유형:

char (signed char ), unsigned char, wchar_t .

  1. 부울 데이터 유형:

부울 .

  1. 열거 데이터 유형(Visual C++에 도입됨):

열거.

2. 정수 데이터 유형을 사용하는 기능은 무엇입니까?

C++에서 주요 정수 데이터 유형은 short int, unsigned short int, int, unsigned int, long(long int), unsigned long(unsigned long int)입니다.

이러한 데이터 유형은 정수 집합의 값을 나타냅니다. 예를 들어:

2 -100 398

부호 없는 접두사로 시작하는 데이터 유형은 양수만 포함할 수 있습니다.

short int, unsigned short int 유형의 데이터는 int, unsigned int 유형의 데이터보다 메모리 공간의 절반을 차지합니다.

long, unsigned long 유형의 데이터는 int, unsigned int 유형의 데이터보다 두 배 많은 메모리 공간을 차지합니다.

3. 프로그램에서 x라는 이름의 정수형 변수를 설명하는 방법은 무엇입니까?

답변:
인텍스; // 부호 있는 정수

결과적으로 변수 아래 엑스 4바이트의 메모리 공간이 할당됩니다. 변수에 할당되는 메모리 양은 컴퓨터의 특성, 운영 체제 유형 및 컴파일러 설정에 따라 다릅니다.

4. 정수형 변수에 숫자 239를 어떻게 쓰는가?

이를 위해 '=' 기호로 표시되는 할당 연산자가 사용됩니다.

답변 1.선언 후 변수에 숫자를 삽입합니다.

인텍스; x=239;

답변 2.선언 중 변수에 숫자 삽입(초기 초기화).

정수 x = 239;

5. 부동 소수점 데이터 유형의 특성은 무엇입니까?

부동 소수점 데이터 유형을 사용하면 실수 집합의 값을 나타낼 수 있습니다. 예를 들어:

8.35 -990.399 239.0.

C++에는 float , double , long double 과 같은 기본 부동 소수점 데이터 유형이 있습니다.

double 유형의 변수는 float 유형의 변수보다 컴퓨터 메모리에서 2배 더 많은 공간을 차지합니다.

또한 long double 유형의 변수는 double 유형의 변수보다 컴퓨터 메모리에서 2배 더 많은 공간을 차지합니다.

6. 부동 소수점 값을 취하는 변수를 설명하는 방법은 무엇입니까?

float , double , long double 변수 선언의 예:

플로트 f; 더블 d; 긴 이중 LD;

7. 부동 소수점 변수에 숫자 값을 쓰는 방법은 무엇입니까?

변수 부동 소수점 유형에 숫자 데이터를 입력하는 예:

부동 소수점 f = -9928.45; // 초기화 더블 d; 긴 이중 LD; d = 0.445332; // 할당 연산자 ld = 3892923898239.030903; // 할당 연산자

8. float 유형 변수를 int 유형으로 변환하는 방법은 무엇입니까?

이를 위해 유형 캐스팅이 사용됩니다. 괄호 안에 캐스트가 수행되는 유형의 이름을 지정해야 합니다.

플로트 intb; a = 8.457; b = (int) a; // b = 8

형식 캐스팅 작업을 사용할 때는 컴퓨터 메모리에서 공간을 덜 차지하는 형식에 적용되는 제한 사항을 고려해야 합니다.

예를 들어, short int 유형의 변수는 float , double 유형의 변수보다 더 작은 범위의 숫자를 나타낼 수 있습니다. 다음 목록은 short int 유형의 변수 값을 오버플로합니다.

짧은 정수 i; 플로트 f; f = 3990099.8; 나는 = (int)f; // 나는 = -7597 - 오버플로

9. 변수를 int형에서 double형으로 어떻게 변환하나요?

int에서 double로 캐스팅하는 예:

정수 나; 더블 d; 나는 = 982; d = (더블)i; // d = 982.0

10. 프로그램에서 char(문자 데이터) 유형의 데이터를 사용하면 어떤 기능이 있습니까?

char 유형의 데이터는 키보드에서 입력된 코드의 문자 값을 나타냅니다. 문자 코드는 정수입니다.

예를 들어, 문자 코드 'f'는 값 102와 같습니다.

문자 코드가 계산되는 코드 조각:

인트코드; 문자 기호; 기호 = "f" ; 코드 = (int) 기호; // 코드 = 102

char 유형의 데이터는 동일한 정수입니다. char 유형의 데이터는 컴퓨터 메모리에서 1바이트를 차지합니다.

문자 대 코드 관계는 Windows 문자 테이블에 있습니다. 문자 코드 0 ~ 127은 BIOS 예약 문자입니다. 여기에는 가장 일반적으로 사용되는 기호, 숫자 기호, 라틴 알파벳 기호가 포함됩니다. 이 문자는 변경할 수 없습니다.

코드가 128에서 255 사이인 문자는 Windows 운영 체제가 설치된 컴퓨터의 특정 알파벳에 연결된 지역 문자입니다.

11. 데이터 타입 bool(boolean 타입)을 사용하면 어떤 특징이 있나요?

Bool 변수는 두 가지 값만 사용할 수 있습니다.

진짜 진짜,

거짓 - 거짓.

이러한 변수는 부울 표현식을 테스트하는 데 사용됩니다. 숫자 값 true 는 1 입니다. false 의 숫자 값은 0 입니다.

숫자 값 true 및 false를 결정하는 코드 스니펫:

정수 결과; 부울 b; 결과 = (int) true ; // 결과 = 1 b=거짓 결과 = (int)b; //결과 = 0

int 및 float 유형을 bool로 변환하는 코드 스니펫:

정수 나; 플로트 f; 부울 b; 나는 = 6; b = (bool )i; // b=참 f = 0.0; b = (부울) f; // b=거짓

12. 주어진 유형의 변수가 차지하는 메모리 양을 결정하는 방법은 무엇입니까?

이를 위해 sizeof() 연산이 사용됩니다.

일부 데이터 유형의 크기를 결정하는 코드 스니펫:

정수 d; d = sizeof(char); // d = 1 d = sizeof(부호 없는 정수); // d = 4 d = sizeof(float); // d = 4 d = sizeof(더블); // d = 8

13. 다른 유형의 변수는 어떻게 초기화됩니까?

정수 d = 28; float z = (float )2.85; 문자 c = "k" ; 문자열 ^ = "안녕하세요!" ; 이중 r = -8.559;

14. 특정 유형의 변수에 대한 최대 허용(최소 허용) 값을 결정하는 방법은 무엇입니까?

.NET Framework 라이브러리는 MaxValue 및 MinValue 속성을 사용하여 일부 유형의 변수에 허용되는 최대값 또는 최소값을 결정합니다.

다른 유형의 변수에 대한 한계 값 정의의 예.

int 유형의 변수:

// 정수 입력 정수 나; 긴 MaxInt; 긴 MinInt; MaxInt = (긴)i.MaxValue; // MaxInt = 2147483647 MinInt = (긴) i.MinValue; // MinInt = -2147483648

short int 유형의 변수:

// short int 입력 짧은 int si; 정수 MaxInt; 정수 MinInt; MaxInt = (int)si.MaxValue; // MaxInt = 32767 MinInt = (int)si.MinValue; // 최소 정수 = -32768

unsigned int 유형의 변수:

// unsigned int 입력 서명되지 않은 인튜이; 부호 없는 정수 MaxInt; unsigned int MinInt; MaxInt = UI.MaxValue; // MaxInt = 4294967295 MinInt = UI.MinValue; // 최소 정수 = 0

float 변수의 경우:

// 플로트 타입 플로트 f; 플로트 MaxF; 플로트 MinF; MaxF = f.MaxValue; // 최대 F = 3.402823E+38 MinF = f.MinValue; // 최소F = -3.402823E+38

double 유형의 변수:

// 더블 타입 더블 d; 이중 MaxD; 더블 마인드; 최대 = d.MaxValue; // 최대 = 1.79769313486232E+308 최소 = d.MinValue; // 최소 = -1.79769313486232E+308

char 변수의 경우:

// 문자 입력 문자 c; 정수 MaxC; 정수 MinC; 최대 = (int) c.MaxValue; // 최대 = 127 최소 = (int) c.MinValue; // 최소 = -128

15. 열거형을 사용하면 어떤 특징이 있나요?

열거형은 열거형 데이터 유형입니다. 정수 값 집합에 대한 니모닉 값을 지정합니다. 각 니모닉 값은 특정 내용을 가지며 정수로 표시됩니다.

enum 유형을 사용하여 연도를 나타내는 예:

열거 월(1월, 2월, 3월, 4월, 5월, 6월, 7월, 8월, 9월, 10월, 11월, 12월) mn; mn = 1월; // mn = 0 mn = 3월; // mn = 2 mn = 9월; // mn = 8

위의 예는 enum months 유형의 mn이라는 변수를 정의합니다. 월(1월, 2월, ...)에 대한 니모닉 값은 0(0, 1, 2, ...)에서 시작합니다. 니모닉 값 1월은 정수 값 0에 해당하고 니모닉 값 2월은 정수 값 1에 해당하는 식입니다.

따라서 열거형을 사용하면 프로그램 텍스트에서 니모닉 표기법을 사용하여 소스 코드를 더 명확하게 볼 수 있습니다.

다음과 같이 작성할 수도 있습니다.

mn = (달 열거)2; // mn = 3월 mn = (달 열거)11; // 백만 = 12월

16. 애플리케이션 유형의 기능은 무엇입니까무효의 를 위한 프로그램에서++ ?

void 데이터 유형은 다음과 같은 경우에 사용됩니다.

  • 값을 반환하지 않는 함수를 설명해야 하는 경우(예제 참조)
  • 매개변수를 받지 않는 함수를 설명해야 하는 경우(예제 참조).

예시. 값을 반환하지 않고(void 유형을 반환) 매개변수를 사용하지 않는 매개변수가 없는 MyFun() 함수입니다.

공개 : 무효 MyFun(무효) { // 함수 본문 // ... 반품; // 값을 반환하지 않는 함수에서 반환 } // 프로그램에서 함수 호출 ... 내 재미(); ...

17. 유형의 변수를 선언할 수 있습니까?무효의 프로그램에서?

void 유형이 값과 연결되어 있지 않기 때문에 할 수 없습니다.

void 유형의 변수를 선언하면 다음 메시지와 함께 컴파일 오류가 발생합니다.

"void 형식의 잘못된 사용"

18. 애플리케이션 유형의 기능은 무엇입니까wchar_ ~에비주얼 ++ ?

char 유형의 변수(이전 단락 참조)는 8비트 ASCII 문자를 저장하는 데 사용됩니다.

wchar_t 유형은 큰 문자 집합의 일부인 문자를 저장하는 데 사용됩니다. 예를 들어, 중국어 알파벳에는 엄청난 수의 문자가 있습니다. 8자리는 중국어 알파벳의 전체 문자 집합을 나타내기에 충분하지 않습니다. 따라서 국제 시장에서 프로그램을 사용하려면 char 유형을 wchar_t로 교체하는 것이 좋습니다.

예시 wchar_t 유형을 사용합니다.

... wchar_tt; // 변수 t에는 2바이트의 메모리가 할당됩니다. t = "s"; ...

C 언어에서 "데이터 유형"과 "유형 수정자"의 개념은 구별됩니다. 데이터 유형은 정수이고 수정자는 부호가 있거나 부호가 없습니다. 부호 있는 정수는 양수 값과 음수 값을 모두 가지며 부호 없는 정수는 양수 값만 갖습니다. C 언어에는 5가지 기본 유형이 있습니다.

  • 문자 - 문자.
  • char 유형 변수의 크기는 1바이트이고 그 값은 코드 테이블의 다양한 문자입니다. 예: 'f', ':', 'j'(프로그램에서 작성할 때 작은 따옴표로 묶습니다. ).

  • int는 정수입니다.
  • int 유형의 변수 크기는 C 표준에 정의되어 있지 않습니다. 대부분의 프로그래밍 시스템에서 int 유형의 변수 크기는 전체 기계어의 크기에 해당합니다. 예를 들어, 16비트 프로세서용 컴파일러에서 int 변수의 크기는 2바이트입니다. 이 경우 이 변수의 부호 있는 값은 -32768에서 32767 사이일 수 있습니다.

  • 플로트는 실제입니다.
  • float 키워드를 사용하면 부동 소수점 변수를 정의할 수 있습니다. 해당 값에는 점으로 구분된 소수 부분이 있습니다(예: -5.6, 31.28 등). 실수는 부동 소수점 형식으로 작성할 수도 있습니다(예: -1.09e+4). 기호 "e" 앞의 숫자를 가수라고 하고 "e" 뒤에 오는 숫자를 순서라고 합니다. float 변수는 메모리에서 32비트를 차지합니다. 3.4e-38에서 3.4e+38 범위의 값을 사용할 수 있습니다.

  • 배정도 - 실제 배정밀도;
  • double 키워드를 사용하면 배정도 실수 변수를 정의할 수 있습니다. float 변수보다 2배 많은 메모리 공간을 차지합니다. double 유형의 변수는 1.7e-308에서 1.7e+308 범위의 값을 사용할 수 있습니다.

  • 무효 - 가치가 없습니다.
  • void 키워드는 값을 반환하지 않는 함수를 선언하는 것과 같이 개체의 값을 무효화하는 데 사용됩니다.

변수 유형:

프로그램은 단순하고 구조화될 수 있는 다양한 데이터에서 작동합니다. 단순 데이터는 정수와 실수, 기호 및 포인터(메모리에 있는 개체의 주소)입니다. 정수에는 없고 실수에는 소수 부분이 있습니다. 구조화된 데이터는 배열과 구조입니다. 그것들은 아래에서 논의될 것입니다.

변수는 이름이 있고 일부 값을 저장하는 컴퓨터 메모리의 위치입니다. 변수 값은 프로그램 실행 중에 변경될 수 있습니다. 새 값이 셀에 기록되면 이전 값은 지워집니다.

변수의 이름을 의미 있게 짓는 것은 좋은 스타일입니다. 변수 이름은 1자에서 32자까지 가능합니다. C에서 문자로 간주되는 소문자 및 대문자, 숫자, 밑줄 문자를 사용할 수 있습니다. 첫 번째 문자는 문자여야 합니다. 변수 이름은 예약어와 같을 수 없습니다.

문자를 입력

char은 가장 경제적인 유형입니다. char 유형은 서명되거나 서명되지 않을 수 있습니다. "signed char"(signed type) 및 "unsigned char"(unsigned type)로 표시됩니다. 부호 있는 유형은 -128에서 +127 범위의 값을 저장할 수 있습니다. Unsigned - 0에서 255까지. 1바이트의 메모리(8비트)가 char 유형 변수에 할당됩니다.

부호 있는 및 부호 없는 키워드는 선언된 변수의 0비트가 해석되는 방식을 나타냅니다. 즉, 부호 없는 키워드가 지정되면 0비트는 숫자의 일부로 해석되고, 그렇지 않으면 0비트는 부호로 해석됩니다.

정수를 입력

정수 값 int는 short(short) 또는 long(long)일 수 있습니다. 짧은 키워드는 서명되거나 서명되지 않은 키워드 뒤에 배치됩니다. 따라서 유형이 있습니다: signed short int, unsigned short int, signed long int, unsigned long int.

signed short int(signed short integer) 유형의 변수는 -32768 ~ +32767, unsigned short int(unsigned short integer) - 0 ~ 65535의 값을 사용할 수 있습니다. 정확히 2바이트의 메모리(16비트)가 할당됩니다. 그들 각각.

signed short int 타입의 변수를 선언할 때 signed와 short 키워드는 생략될 수 있으며, 이러한 변수 타입은 단순히 int로 선언될 수 있다. 단일 짧은 키워드로 이 유형을 선언하는 것도 가능합니다.

unsigned short int 변수는 unsigned int 또는 unsigned short로 선언할 수 있습니다.

각각의 signed long int 또는 unsigned long int에는 4바이트의 메모리(32비트)가 있습니다. 이 유형의 변수 값 범위는 각각 -2147483648 ~ 2147483647 및 0 ~ 4294967295입니다.

8바이트의 메모리(64비트)가 할당되는 long long int 유형의 변수도 있습니다. 서명되거나 서명되지 않을 수 있습니다. 부호 있는 유형의 경우 값의 범위는 -9223372036854775808 ~ 9223372036854775807이고 부호 없는 유형의 경우 0 ~ 18446744073709551615입니다. 두 개의 긴 키워드로 서명된 유형도 간단히 선언할 수 있습니다.

유형 범위 16진수 범위 크기
서명되지 않은 문자 0 … 255 0x00 ... 0xFF 8비트
서명된 문자
또는 단순히
-128 … 127 -0x80...0x7F 8비트
부호 없는 짧은 정수
또는 단순히
부호없는 정수또는 서명되지 않은 짧은
0 … 65535 0x0000 ... 0xFFFF 16비트
서명된 짧은 정수또는 서명된 정수
또는 단순히
짧은또는 정수
-32768 … 32767 0x8000… 0x7FFF 16비트
부호 없는 긴 정수
또는 단순히
서명되지 않은 긴
0 … 4294967295 0x00000000 ... 0xFFFFFFFF 32비트
긴 서명
또는 단순히
-2147483648 … 2147483647 0x80000000 ... 0x7FFFFFF 32비트
unsigned long long 0 … 18446744073709551615 0x0000000000000000 … 0xFFFFFFFFFFFFFFFF 64비트
장기 서명
또는 단순히
오래오래
-9223372036854775808 … 9223372036854775807 0x8000000000000000 ... 0x7FFFFFFFFFFFFFF 64비트

변수 선언

변수는 선언문에서 선언됩니다. 선언문은 유형 사양과 쉼표로 구분된 변수 이름 목록으로 구성됩니다. 끝에 세미콜론이 있어야 합니다.

[수정자] 유형 지정자 id [, id] ...

수식어는 signed, unsigned, short, long 키워드입니다.
유형 지정자는 선언되는 변수의 유형을 지정하는 char 또는 int 키워드입니다.
식별자는 변수의 이름입니다.

차크스; int, b, c; unsigned long long y;

변수를 선언할 때 초기화, 즉 초기값을 할당할 수 있습니다.

정수 x = 100;

100이라는 숫자는 선언과 동시에 변수 x에 바로 쓰여지므로 초기화된 변수는 별도의 줄로 선언하는 것이 좋다.

이 단원에서 배우게 될 C++ 언어 알파벳, 뿐만 아니라 무엇 데이터 유형프로그램을 처리할 수 있습니다. 가장 흥미진진한 순간은 아닐지 모르지만 이 지식은 필요합니다!또한 다른 프로그래밍 언어를 배우기 시작하면 비슷한 학습 단계를 더 자신있게 겪을 것입니다. C++ 프로그램에는 다음 문자가 포함될 수 있습니다.

  • 대문자, 소문자 라틴 문자 A, B, C…, x, y, z 및 밑줄;
  • 0에서 9까지의 아라비아 숫자;
  • 특수 문자: ( ) , | , () + - / % * . \' : ?< > = ! & # ~ ; ^
  • 공백, 탭 및 개행 문자.

프로그램 테스트에서 다음을 사용할 수 있습니다. 코멘트. 두 개의 "슬래시" 문자가 있는 // 텍스트가 개행 문자로 끝나거나 /* 및 */ 문자로 묶이면 컴파일러는 이를 무시합니다.

C++의 데이터

어떤 프로그램에서든 문제를 해결하기 위해 일부 데이터가 처리됩니다. 정수 및 실수, 기호, 문자열, 배열 등 다양한 유형이 될 수 있습니다. C++의 데이터는 일반적으로 함수의 시작 부분에 설명됩니다. 에게 기본 데이터 유형언어에는 다음이 포함됩니다.

다른 유형의 데이터를 형성하기 위해 기본 및 소위 지정자. C++는 네 가지 데이터 유형 지정자를 정의합니다.

  • 짧은 - 짧은;
  • 긴 - 긴;
  • 서명 - 서명;
  • 서명되지 않은 - 서명되지 않은.

정수형

유형 변수 정수컴퓨터 메모리에서 2바이트 또는 4바이트를 차지할 수 있습니다. 프로세서 속도에 따라 다릅니다. 기본적으로 모든 정수 유형은 부호 있는 것으로 간주됩니다. 서명지정하지 않을 수 있습니다. 지정자 서명되지 않은양수만 나타낼 수 있습니다. 다음은 정수 유형 값의 일부 범위입니다.

유형 범위 크기
정수 -2147483648…2147483647 4 바이트
부호없는 정수 0…4294967295 4 바이트
서명된 정수 -2147483648…2147483647 4 바이트
짧은 정수 -32768…32767 2바이트
긴 정수 -2147483648…2147483647 4 바이트
부호 없는 짧은 정수 0…65535 2바이트

실제 유형

부동 소수점 숫자는 mE +- p 형식으로 표시됩니다. 여기서 m은 가수(정수 또는 소수점이 있는 소수)이고, p는 지수(정수)입니다. 일반적으로 다음과 같은 값 뜨다 4바이트를 취하고 더블 8바이트. 실제 값 범위 표:

뜨다 3.4E-38… 3.4E+38 4 바이트
더블 1.7E-308… 1.7E+308 8바이트
롱 더블 3.4E-4932… 3.4E+4932 8바이트

부울 유형

유형 변수 부울두 개의 값만 사용할 수 있습니다. 진실(진실 ) 또는 페이즐(거짓 ). 0이 아닌 값은 다음과 같이 해석됩니다. 진실.의미 거짓메모리에 0으로 표시됩니다.

보이드 타입

이 유형의 값 세트는 비어 있습니다. 값을 반환하지 않는 함수를 정의하고, 함수 인수의 빈 목록을 지정하고, 포인터의 기본 유형으로, 캐스트 작업에서 사용됩니다.

데이터 유형 변환

C++는 명시적 및 암시적 데이터 유형 변환의 두 가지 유형을 구분합니다.

  • 암시적 변환자동으로 발생합니다. 이것은 다른 유형의 표현식을 비교, 할당 또는 평가하는 동안 수행됩니다. 예를 들어 다음 프로그램은 콘솔에 다음과 같은 값을 인쇄합니다. 뜨다.

#include "stdafx.h" #include 네임스페이스 std 사용 int main() ( int i=5; float f=10.12; cout<> 무효"); 0을 반환; )

#include "stdafx.h"

#포함하다

네임스페이스 std 사용하기 ;

정수 메인()

정수 i = 5 ; 부동 소수점 f = 10.12 ;

쫓다<< i / f ;

system("일시 중지 >> 무효" );

반환 0 ;

정보 손실이 가장 적은 유형이 가장 높은 우선 순위를 갖습니다. 모든 종류의 예상치 못한 상황이 발생할 수 있으므로 암시적 유형 변환을 남용해서는 안 됩니다.

  • 명시적 변환암시적인 것과는 대조적으로 프로그래머가 수행합니다. 이 변환을 수행하는 몇 가지 방법이 있습니다.
  1. 스타일로 변환 : (플로트)
  2. 스타일로 변환 C++: 뜨다()

유형 캐스팅은 다음 작업을 사용하여 수행할 수도 있습니다.

static_cast<>() const_cast<>() reinterpret_cast<>() 동적 캐스트<> ()

static_cast<> ()

const_cast<> ()

재해석_캐스트<> ()

dynamic_cast<> ()

static_cas- 관련 데이터 유형을 변환합니다. 이 연산자는 컴파일러가 자동 변환을 수행하지 않을 때 필요할 수 있는 일반적인 규칙에 따라 유형을 캐스팅합니다. 구문은 다음과 같습니다.

static_cast 유형<Тип>(객체);

static_cast를 사용하면 변수에서 constness를 제거할 수 없지만 다음 명령문의 능력 범위 내에 있습니다. const_cast- 객체에서 constness를 제거해야 할 때만 사용됩니다. 구문은 다음과 같습니다.

유형const_cast< 유형> (객체);

재해석_캐스트- 다른 유형, 정수를 포인터로 또는 그 반대로 변환하는 데 사용됩니다. "포인터"라는 새로운 단어가 보이면 놀라지 마십시오! 이것도 데이터 유형이지만 곧 다루지 않을 것입니다. 여기서 구문은 이전에 논의된 연산자와 동일합니다.

유형재해석하다_깁스< 유형> (객체);

dynamic_cast- 동적 유형 변환에 사용되며 포인터 또는 참조 캐스팅을 구현합니다. 통사론:

유형동적 _깁스< 유형> (객체);

제어 문자

당신은 이미 이러한 "제어 문자" 중 일부에 익숙합니다(예: \N). 모두 백슬래시로 시작하고 큰따옴표로 둘러싸여 있습니다.

영상

16진수 코드

이름

신호음

뒤로 물러나다

페이지 번역(형식)

라인 번역

캐리지 리턴

가로 탭

세로 탭

C의 모든 데이터에는 고유한 유형이 있습니다. 특정 유형의 변수는 유형에 따라 다른 메모리의 특정 위치를 차지합니다. C에서는 특정 유형에 메모리 양을 명확하게 할당하지 않습니다. 이것은 특정 플랫폼에 대한 특정 컴파일러의 구현에 맡겨집니다. 예를 들어, 다음과 같은 변수 정수 한 컴파일러에서는 메모리에서 16비트, 다른 컴파일러에서는 32비트, 세 번째 컴파일러에서는 8비트를 차지할 수 있습니다. 모든 것은 특정 컴파일러에 의해 결정됩니다. 사실, 모든 사람이 보편화를 위해 노력하고 있으며 기본적으로 대부분의 컴파일러에서 유형 정수 , 예를 들어 2바이트를 차지하며 유형은 - 하나.

나는 최근에 약간 무뚝뚝했고, 유형이 얼마나 많은 바이트를 사용하는지 기억할 수 없습니다. 더블 ~에 AVR-GCC. 일반적으로 컨트롤러를 프로그래밍할 때 다음과 같은 정수 유형으로 작업합니다. 정수 그리고 , 그리고 리소스 집약도 때문에 부동 소수점 유형에 거의 의존하지 않습니다.

따라서 앞으로 AVR-GCC 컴파일러의 데이터 유형이 차지하는 메모리 크기와 이 유형의 변수 범위를 나타내는 메모를 여기에 남길 것입니다.

AVR-GCC 컴파일러용 C 언어의 데이터 유형

유형 크기
바이트(비트)
변경 간격
1 (8) -128 .. 127
서명되지 않은 문자 1 (8) 0 .. 255
서명된 문자 1 (8) -128 .. 127
정수 2 (16) -32768 .. 32767
부호없는 정수 2 (16) 0 .. 65535
서명된 정수 2 (16) -32768 .. 32767
짧은 정수 2 (16) -32768 .. 32767
부호 없는 짧은 정수 2 (16) 0 .. 65535
서명된 짧은 정수 2 (16) -32768 .. 32767
긴 정수 4 (32) -2147483648 .. 2147483647
부호 없는 긴 정수 4 (32) 0 .. 4294967295
서명된 긴 정수 4 (32) -2147483648 .. 2147483647
뜨다 4 (32) 3.4Е-38 .. 3.4Е+38
더블 4 (32) 3.4Е-38 .. 3.4Е+38
롱 더블 10 (80) 3.4E-4932 .. 3.4E+4932

유형 구현 더블 AVR-GCC에서 표준에서 벗어납니다. 기준에 따르면 더블 64비트를 차지합니다. AVR-GCC에서 이 유형의 변수는 32비트를 차지하므로 다음 유형의 변수와 동일합니다. 뜨다!

이 외에도 표준 유형의 여러 파생물이 AVR-GCC 라이브러리에 도입되었습니다. 파일에 설명되어 있습니다. stdint.h . 이것은 아마도 가시성을 향상시키고 프로그램의 텍스트를 줄이기 위해 수행되었습니다(작성 ​​속도를 높이세요 :)). 일치하는 레이블은 다음과 같습니다.

AVR-GCC 컴파일러용 C 언어의 표준에서 파생된 유형

파생형 표준형
정수8_t 서명된 문자
uint8_t 서명되지 않은 문자
int16_t 서명된 정수
uint16_t 부호없는 정수
int32_t 서명된 긴 정수
uint32_t 부호 없는 긴 정수
int64_t 서명된 long long int
uint64_t 부호 없는 long long int

보이드 타입

C 언어에는 유형이 하나 더 있습니다. 무효의 . 무효의 함수가 결과로 아무 것도 반환하지 않거나 매개변수를 입력으로 받아들이지 않음을 나타내는 데 사용됩니다. 이 유형은 변수를 선언하는 데 사용되지 않으므로 메모리 공간을 차지하지 않습니다.