Reaprendizaje de notas de C ++ (2) Procesamiento de datos

1. Tipos de datos básicos

Siete tipos de datos básicos de C ++: bool, char, int, float, double, void, wchar_t.
Modificadores de tipo: firmado, sin firmar, corto, largo, largo largo.

Si desea conocer el tipo o el tamaño de la variable, puede hacer lo siguiente.

#include <iostream>
using namespace std;
int main()
{
    
    
    cout<<"bool:"<<sizeof(bool)<<endl
       <<"char:"<<sizeof(char)<<endl
      <<"float:"<<sizeof(float)<<endl
     <<"double:"<<sizeof(double)<<endl
    <<"long:"<<sizeof(long)<<endl
    <<"long long :"<<sizeof(long long)<<endl;
    return 0;
}

El resultado es el siguiente:

bool:1
char:1
float:4
double:8
long:8
long long :8

2. Tipo de número entero

C ++ puede escribir enteros en tres métodos de conteo diferentes: base 10, base 8 (versión antigua de UNIX), base 16 (el favorito de los hackers de hardware).

Tome 42 como ejemplo: sus métodos de escritura correspondientes son 42,042 y 0x42 (o 0X42), y sus significados decimales son respectivamente 42, 34 y 66.

El procedimiento es el siguiente:

#include <iostream>
using namespace std;
int main()
{
    
    
    int num10 = 42;//十进制
    int num8 = 042;//八进制
    int num16 = 0x42;//十六进制
    cout<<num10<<endl
       <<num8<<endl
      <<num16<<endl;
     return 0}

3. Tipo de char y wchar_t

3,1 caracteres

char está especialmente diseñado para almacenar caracteres. Para las computadoras, almacenar números no es nada, pero almacenar letras es otro asunto. El lenguaje de programación utiliza codificación numérica de letras para resolver este problema, por lo que el tipo char es otro tipo de configuración.

Puede representar 128 caracteres y utiliza codificación ASCII. Consulte el Anexo C del libro de texto para obtener formas específicas. Por ejemplo, el código del carácter A es 65 y el código de la letra M es 77.

Hay dos formas de generar char, cout y cout.put, la última está dedicada a la salida char y su salida es el carácter correspondiente a char. Si necesita generar el código correspondiente, puede convertirlo a tipo int. el código se muestra a continuación.

#include <iostream>
using namespace std;
int main()
{
    
    

    char ch = 'A';
    cout<<ch<<endl;
    cout.put(ch);
    int intA = ch;
    cout<<endl<<intA<<endl;
    return 0;
}

La salida es:

A
A
65

3.2 caracteres de escape

Algunos caracteres no se pueden ingresar en el programa a través del teclado. Por ejemplo, presionar la tecla Enter puede hacer que la cadena contenga un carácter de nueva línea. Para caracteres especiales, C ++ proporciona una secuencia de escape de método de representación especial. Las secuencias de escape se pueden usar en cadenas o constantes de caracteres. Como

#include <iostream>
using namespace std;
int main()
{
    
    
    char alarm = '\a';//表示振铃
    int intAlarm = alarm;
    cout<<intAlarm<<endl;
    cout<<"他说:\"大家好!\""<<endl;
}

Salida:

7
他说:"大家好!"

Inserte la descripción de la imagen aquí
De acuerdo con la tabla anterior, podemos saber que "\ n" y "\ 012" (octal), "\ 0xa" (hexadecimal) significan un salto de línea.
Código de prueba:

#include<string>
#include<iostream>
using namespace std;
int main()
{
    
    
    cout<<"test1\012";
    cout<<"test2"<<"\0xa";//用QT测试,这里16进制好像有一点问题?
    cout<<"test3\n";
    cout<<"test4"<<endl;
}

3.3 carácter firmado 和 carácter no firmado

A diferencia del tipo int, char no está firmado ni sin firmar de forma predeterminada. Si necesita hacer una selección especial, puede agregar manualmente el tipo.

Char sin signo significa 0 ~ 255 y char con signo significa -128 ~ 127.

3.4 Nombres de personajes universales

Por ejemplo, los símbolos especiales franceses son difíciles de expresar en ASCII, por lo que tenemos codificación Unicode e ISO 10646, y sus codificaciones están sincronizadas.

Los nombres de caracteres universales pueden usar \ u: seguido de 8 dígitos hexadecimales. \ U: Seguido de 16 dígitos hexadecimales. Como:

int k\u00F6rper;

Inserte la descripción de la imagen aquí

3,5 wcha_t

En el ámbito internacional, 128 bits no pueden satisfacer bien las necesidades internacionales. C ++ admite tipos de caracteres amplios y puede almacenar más valores, como el juego de caracteres Unicode internacional.

Cin y cout tratan la entrada y la salida como flujos de caracteres, por lo que no son aplicables a wchar_t. iostream proporciona herramientas similares wcin y wcout.

Este libro no presenta wchar_t, pero debemos conocer este tipo, especialmente en Unicode e ISO10646.

C ++ agregó los tipos char16_t y char32_t, que son de 16 bits sin firmar y de 32 bits sin firmar, respectivamente. En C ++ 11, use el prefijo más u y el prefijo más U respectivamente. Como:

#include <iostream>
using namespace std;
int main()
{
    
    
    char16_t ch1 = u'q';
    char32_t ch2 = U'\U0000222B';
    cout<<ch1<<endl;
    cout<<ch2<<endl;
    return 0;
}

La salida es:

113
8747

4. tipo bool

bool e int se pueden convertir entre sí, si int no es 0, es verdadero y 0 es falso. P.ej

   int ans =true;//转换为1
   int promise =false;//转换为0
   bool start = -100;//转换为true
   bool stop = 0;//转换为false

5. definir y const calificador

  • #definir
#define INT_MAX 32737

#define es similar a #include, también es una instrucción de precompilación Busque INT_MAX en el programa y reemplace todo INT_MAX con 30767. El programa modificado se compilará después de que se complete el reemplazo.

#define es un legado del lenguaje C. En C ++, hay una mejor manera de crear constantes simbólicas, const. Pero algunos archivos de encabezado, que están diseñados para usarse en C y C ++, deben usar #define.

  • constante

const es una palabra clave que define las constantes proporcionadas en C ++, que es mejor que define. Las razones son las siguientes:

  • Puede especificar el tipo explícitamente.
  • Puede utilizar las reglas de alcance de C ++ para restringir las definiciones a funciones o archivos específicos.
  • Puede usar const para tipos más complejos, como matrices y estructuras.

6. Inicialización

Tenga en cuenta que la inicialización en C ++ 11 (inicialización representada por "{}") no se puede restringir, por ejemplo, no se permite convertir un tipo de punto flotante en un tipo entero.

int A =100;//c语言初始化
int A(100);//C++初始化
int A{
    
    100};//C++11初始化
int A = {
    
    100};//C++11初始化

7. Tipos de coma flotante

El tipo de coma flotante se almacena en dos partes en la computadora, una parte representa el valor y la otra parte representa la ampliación o reducción. Por ejemplo, 3.1415926 y 3415.926 son iguales excepto por la posición del punto decimal. 3,14 se representa como 0,314 (referencia) y 10 (factor de escala).

Hay tres tipos de coma flotante en C ++: float, double y long double.

7.1 Dos formas de representación

  • Método de punto decimal estándar:
    12,34
  • E notación
    2.52e + 8 o 2.52E + 8 // representa 10
    elevado a 8 2.52e-8 // representa 10 elevado a -8

d.ddE + n: significa que el punto decimal se desplaza 8 lugares hacia la derecha, d.ddE-n significa que el punto decimal se desplaza 8 lugares hacia la izquierda.

7.2 Ventajas y desventajas de los números en coma flotante

  • Ventajas
    Puede representar valores entre números enteros
    Tiene un factor de escala

  • Desventajas
    La velocidad de las operaciones de coma flotante suele ser más lenta que las operaciones con números enteros y la precisión se reducirá. Lo siguiente es un ejemplo.

#include <iostream>
using namespace std;
int main()
{
    
    
   float a = 2.34E+22f;
   float b = a + 1.0f;

   cout<<"a = "<<a<<endl;
   cout<<"b - a ="<<b - a<<endl;
}

Resultado de salida:

a = 2.34e+22
b - a =0

Porque 2.34E + 22 es un número con 23 dígitos a la izquierda del punto decimal. Agregue 1 para agregar 1 a la posición 23. Pero el tipo flotante solo puede representar los primeros 6 o 7 dígitos del número, por lo que modificar el dígito 23 no tiene ningún efecto en este valor, por lo que la salida permanece sin cambios.

8. Operadores aritméticos de C ++

Hay cinco cálculos aritméticos en C ++: suma, resta, multiplicación, división y módulo. (+ - * /%)

Además, hay operadores de auto-adición y auto-decremento en C ++: ++ y -

8.1 Conversión de tipos

Dos representaciones de conversión de tipo forzada:

(long) thorn
long (thorn)

La espina en sí no se cambiará, pero se creará un nuevo valor del tipo especificado.

C ++ también presenta 4 operadores de conversión. Se introducirá en el complemento de seguimiento.

8.2 La declaración automática en C ++ 11

Auto es una palabra clave del lenguaje C, pero rara vez se usa. C ++ 11 lo ha extendido. Su función es permitir que el compilador infiera el tipo de variable en función del tipo de valor inicial. P.ej:

auto n = 100;//n表示int
auto x = 1.5;//x表示double

Otro ejemplo:

std::vector<double> scores;
auto pv = scores.begin();

Descripción general Catálogo
Anterior: (1) Introducción básica
Siguiente: (3) Tipo de compuesto


Referencia del artículo: "C ++ Primer Plus Sixth Edition"

Supongo que te gusta

Origin blog.csdn.net/QLeelq/article/details/112269803
Recomendado
Clasificación