Latest web development tutorials

calchi C

Getta la variabile viene convertito da un tipo a un altro tipo di dati. Ad esempio, se si desidera memorizzare il valore di un tipo lungo per un semplice intero, è necessario digitare lunghi lanciare a int. È possibile utilizzarel'operatore di cast di mettere esplicitamente i valori da un tipo in un altro tipo, come segue:

(type_name) expression

Considerate i seguenti esempi, l'uso di operatore di conversione obbligatoria a una variabile intera da un'altra variabile intera, ottenere un float:

#include <stdio.h>

main()
{
   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );

}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

Value of mean : 3.400000

Da notare qui è l'operatore di cast ha la precedenza sulla divisione, in modo che il valore dellasomma viene prima convertito in un doppio,poi dividere il conteggio, ottiene un valore di tipo double di.

conversioni di tipo può essere implicito, eseguita automaticamente dal compilatore, può essere esplicita, specificato utilizzandol'operatore di cast.Nella programmazione, vi è la necessità di trascorrere del tempo all'operatore il tipo di conversione cast, è una buona pratica di programmazione.

promozione integrale

Si riferisce alla promozione integrale è inferiore aint o unsigned inttipo integer viene convertito ininto un processounsigned int.Si consideri il seguente esempio, aggiungere un personaggio in un int:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;

   sum = i + c;
   printf("Value of sum : %d\n", sum );

}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

Value of sum : 116

Qui, somma del valore 116, perché il compilatore è stato promozione integrale quando si esegue l'effettivo funzionamento Inoltre, il valore 'c' convertito nel valore ASCII corrispondente.

conversioni aritmetiche usuali

conversioni aritmetiche usuali sono implicitamente espressi al valore dello stesso tipo.Il compilatore esegue primasollevamento integer, se gli operandi di tipo diverso, vengono convertiti nel seguente gerarchia appare più alto livello Tipo:

Solito conversione aritmetica

conversioni aritmetiche abituali non si applicano al l'operatore di assegnazione, gli operatori logici && e ||. Diamo un'occhiata ai seguenti esempi per capire questo concetto:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );

}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

Value of sum : 116.000000

Qui, c viene prima convertito in un intero, ma a causa l'ultimo valore è doppio tipo, quindi le solite conversioni aritmetiche vengono applicate, il compilatore i e C viene convertito a stare a galla, e metterli insieme per ottenere un numero in virgola mobile .