ANTERIOR: C++ Declaración de variables
En C ++, cada nombre y cada expresión tiene un tipo que determina las operaciones que se pueden realizar en él. Por ejemplo, la declaración:
…..
{
int inch;
…..
…..
}
…..
…..
especifica que inch es del tipo int; es decir, inch es una variable entera.
C ++ ofrece una variedad de tipos fundamentales de variables, que se corresponden directamente con las características de un hardware en particular.
Por ejemplo:
bool // Boolean, los valores posibles son verdadero(true) o falso (false)
char // Carácter, por ejemplo ’a’, ’z’, and ’9’
int // Entero, por ejemplo, 1, 42, and 1066
double // doble precisión con punto flotante (double-precision floating-point number), por ejemplo, 3.14 and 299793.0
Cada uno de los tipos fundamentales tiene un tamaño fijo que determina el rango de valores que puede almacenarse en ellos (para enteros) o la precisión y rango de esos valores (para números con punto flotante). Una variable char tiene un tamaño natural típico de un byte (8 bits). Los tamaños de otros tipos de variables se calculan como múltiplos del tamaño de una variable char. El tamaño de un tipo está definido por la implementación (es decir, puede variar entre diferentes máquinas). Dicho tamaño puede ser consultado mediante el operador sizeof; por ejemplo sizeof (char) es igual a 1 y sizeof (int) es a menudo 4. Podemos representar gráficamente los tamaños:
Los operadores aritméticos se pueden usar y combinar de la siguiente manera:
x+y // suma
+x // signo positivo
x−y // resta
−x // signo negativo
x∗y // multiplicación
x/y // división
x%y // resto (módulo) para enteros
Lo mismo pasa con los operadores comparadores:
x==y // igual
x!=y // diferente
x<y // menor que
x>y // mayor que
x<=y // menor o igual quel
x>=y // mayor o igual que
En asignaciones y en operaciones aritméticas, C ++ realiza todas las conversiones significativas entre los tipos básicos de variables, para que puedan mezclarse libremente como se observa en la siguiente declaración:
…..
…..
void some_function() // no retorna ningún valor al ejecutar esta función
{
double d = 2.2; // inicializa el número d tipo floating-point
int i = 7; // inicializa el entero i
d = d+i; // asigna una suma al número d
i = d∗i; // asigna un producto al número i
}
…..
…..
Notar que = es el operador de asignación, mientras que == es el operador que evalúa una igualdad.
C ++ ofrece una variedad de notaciones para expresar la inicialización, como el = usado anteriormente, y una forma universal basada en listas de inicializadores delimitados por llaves, como se ilustra a continuación:
double d1 = 2.3;
double d2 {2.3};
complex z = 1; // un número complejo del tipo double-precision floating-point
complex z2 {d1,d2};
complex z3 = {1,2}; // el operador = es opcional con { … }
vector v {1,2,3,4,5,6}; // un vector de variables tipo ints
Una constante no puede dejarse sin inicializar y una variable solo debe dejarse sin inicializar en circunstancias extremadamente raras. No introduzca un nombre hasta que tenga un valor adecuado para ello.
Al definir una variable, en realidad no necesita indicar su tipo explícitamente cuando
se puede deducir del inicializador:
auto b = true; // tipo boolean
auto ch = ’x’; // tipo char
auto i = 123; // tipo int
auto d = 1.2; // tipo double
auto z = sqrt(y); // z tiene el mismo tipo que el entregado por la operación sqrt(y)
Con el operador auto, usamos la sintaxis = porque no hay una conversión involucrada que pueda causar problemas.
Además de los operadores lógicos y aritméticos convencionales, C ++ ofrece operaciones más específicas para modificar una variable:
x+=y // x = x+y
++x // incrementa en uno: x = x+1
x−=y // x = x-y
−−x // reduce en uno: x = x-1
x∗=y // escala: x = x*y
x/=y // escala: x = x/y
x%=y // porcentaje de, x = x%y
Estos operadores son concisos, convenientes y muy utilizados.
C ++ admite dos nociones de inmutabilidad:
• const: lo que significa aproximadamente ”Prometo no cambiar este valor”. Esto se usa principalmente para especificar interfaces, de modo que los datos se pueden pasar a funciones sin temor a que se modifiquen. El compilador hace cumplir la promesa hecha por const.
• constexpr: que significa aproximadamente ”para ser evaluado en tiempo de compilación”. Esto se usa principalmente para especificar constantes, para permitir la ubicación de datos en la memoria donde es poco probable que se corrompan y para mejorar el rendimiento.
double sum(const vector&); // la variable sum no modificará su argumento
const int dmv = 17; // dmv es una constante
constexpr double max1 = 1.4∗square(dmv); // OK si square(17) es una expresión constante
const double max2 = 1.4∗square(dmv); // OK, puede ser evaluado en run time
vector v { 1.2, 3.4, 4.5 }; // v no es una constante
const double s1 = sum(v); // OK: evaluado en run time
constexpr double s2 = sum(v); // error : sum(v) no es una expresión constante
El siguiente ejemplo ilustra por sí mismo lo estudiado hasta ahora:
#include “stdafx.h”
#include <iostream>
double square(double x) //eleva al cuadrado un número tipo double-precision //floating point
{
return x * x;
}
void print_square(double x)
{
std::cout << “the square of” << x << “is” << square(x) << ‘\n’;
}
int main()
{
print_square(1.234); //imprime el cuadrado de 1.234
print_square(5.555); // imprime el cuadrado de 5.555
}
Output:
Std :: especifica que el nombre cout se encuentra en el espacio de nombres de la biblioteca estándar. Sin el operador std :: , la declaración “cout << “the square of” << x << “is” << square(x) << ‘\n’;” no tiene sentido.
Un término void indica que la función print_square(double x) no devuelve ningún valor.
Numeric Data
C ++ contiene tipos de datos intrínsecos para almacenar valores numéricos en el código de su aplicación. Es importante recordar que estos valores están basados en binarios y no son tan flexibles como sus equivalentes de base 10. Por ejemplo, en términos matemáticos de un entero de base 10, la definición es un valor que es infinito negativo hasta infinitos positivos. Las computadoras modernas todavía no pueden representar números tan grandes. Tome como ejemplo el tipo int en la tabla de Tipos de Datos Numéricos. El rango no excede los 3 mil millones en cualquier dirección.
ANTERIOR: C++ Declaración de variables
Fuente:
- BalaguruswamyObjectOrientedProgrammingWithC++Fourth
- 2-Tour-Basics
Revisión literaria hecha por: Larry Francis Obando – Technical Specialist – Educational Content Writer.
Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, Valle de Sartenejas.
Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, Caracas.
Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.
Contact: Caracas, Quito, Guayaquil, Cuenca – Telf. +34 633129287
WhatsApp: +34 633129287
email: dademuchconnection@gmail.com