English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo le basi della conversione di tipo in C ++ con esempi.
C ++ ci permette di convertire i dati di un tipo in un altro tipo. Questo viene chiamato conversione di tipo.
In C ++ ci sono due tipi di conversioni di tipo.
Conversione implicita
Conversione esplicita (noto anche come casting)
Conversioni correlate: convertire 转换字符串为intC++ Conversione di stringa C ++ in float / double
La conversione di tipo effettuata automaticamente dal compilatore viene chiamata conversione implicita di tipo. Questo tipo di conversione viene anche chiamatoConversione automatica.
Vediamo due esempi di conversione implicita di tipo.
// Come funziona la conversione implicita di tipo #include <iostream> using namespace std; int main() { // Assegnare un valore int a num_int int num_int = 9; // Dichiarare una variabile double double num_double; // Conversione implicita // Assegnare un valore int a una variabile double num_double = num_int; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; }
risultato di output
num_int = 9 num_double = 9
Nel programma, abbiamo assegnato un valore int a una variabile double.
num_double = num_int;
In questo caso, prima di assegnare un valore int a una variabile num_double, il compilatore lo convertirà automaticamente in double. Questo è un esempio di conversione implicita di tipo.
// Come funziona la conversione implicita di tipo #include <iostream> using namespace std; int main() { int num_int; double num_double = 9.99; // Conversione implicita // Assegnare un valore double a una variabile int num_int = num_double; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; }
risultato di output
num_int = 9 num_double = 9.99
Nel programma, abbiamo assegnato un valore double a una variabile int.
num_double = num_int;
Prima di assegnare un valore double a una variabile num_int, il compilatore lo convertirà automaticamente in int. Questo è un esempio di conversione implicita di tipo.
Attenzione:Poiché int non può avere una parte decimale, nel esempio sopra, i numeri decimali sono stati troncati.
Dal esempio sopra, si può vedere che la conversione da un tipo di dati a un altro tipo di dati è facile causare la perdita di dati. Questo accade quando i dati di tipo più grande vengono convertiti in dati di tipo più piccolo.
quando l'utente modifica manualmente i dati da un tipo all'altro, si chiamaconversione esplicita. Questo tipo di conversione è anche noto comeconversione di tipo forzato.
Possiamo utilizzare tre metodi principali per utilizzare le conversioni esplicite nel C++. Sono loro:
conversione di tipo forzato di stile C (noto anche come simbolo di conversione forzata)
rappresentazione della funzione (noto anche come vecchio stile C++)
运算符类型转换
come si può intuire, questo tipo di conversione è influenzato daconversione di stile C del linguaggio Cè anche noto comesintassi di conversione forzata.
La sintassi di questo tipo è:
(data_type)expression;
ad esempio,
// inizializzazione della variabile int int num_int = 26; // dichiarazione della variabile double double num_double; // conversione da int a double num_double = (double)num_int;
Possiamo anche utilizzare funzioni simili per convertire i dati da un tipo all'altro.
la sintassi di questo tipo è:
data_type(expression);
ad esempio,
// inizializzazione della variabile int int num_int = 26; // dichiarazione della variabile double double num_double; // conversione da int a double num_double = double(num_int);
#include <iostream> using namespace std; int main() { // inizializzazione della variabile double double num_double = 3.56; cout << "num_double = " << num_double << endl; // conversione di stile C da double a int int num_int1 = (int)num_double; cout << "num_int1 = " << num_int1 << endl; // conversione di funzione da double a int int num_int2 = int(num_double); cout << "num_int2 = " << num_int2 << endl; return 0; }
risultato di output
num_double = 3.56 num_int1 = 3 num_int2 = 3
我们使用转换类型风格C风格和转换类型函数样式并显示结果。由于它们执行相同的任务,因此两者都给我们相同的输出。
除了这两个类型转换外,C++还具有四个用于类型转换的运算符。它们被称为运算符类型转换。他们是:
static_cast
dynamic_cast
const_cast
reinterpret_cast
将在以后的教程中了解这些强制转换。