Motstridtyper i C

Motstridtyper i C


I programmeringsspråket C, som med andre programmeringsspråk, programmerere lagre ulike verdier i variabler. Avhengig av hvilken type verdi de ønsker å lagre, vil de bruke en annen type variabel som er optimalisert for å håndtere den slags verdi mest effektivt. Men variabeltyper er gjensidig inkompatible, og vil komme i konflikt hvis de blir begge brukt i en operasjon.

tall~~POS=TRUNC typer~~POS=HEADCOMP

I C, er det to store innfødte variabeltyper for tall: heltall og flyttall. Programmerere bruk heltall, eller "INT" typer, for å lagre hele tall, såsom 1, 2, 3, 300, 3000, eller et annet nummer som er sammensatt bare av komplette enheter. Programmerere bruker flyttall, eller "flyte" typer, for tall som har en desimal komponent. Disse kan være tall så små som 0,0003 eller så store som 300000,3.

tegn~~POS=TRUNC variabler

Tegn, for eksempel bokstaver eller symboler, er lagret i "char" opprinnelige datatypen. En enkelt char variabel kan holde en enkelt bokstav eller symbol. I motsetning til numeriske datatyper, som kan lagre noen numerisk verdi innenfor en enkelt variabel, kan røye variabler holde bare et enkelt tegn. Hvis en programmerer ønsker å lagre ord eller setninger, han trenger å bruke en rekke røye variabler. Dette er strukturer som består av flere røye variabler, med hver variabel som holder et brev. For eksempel, hvis en programmerer ønsket å lagre ordet "computer", ville han bruke en åtte-spalte rekke char variabler, med hvert spor som holder en av disse tegn i ordet.

casting Konflikter

Variabeltyper er laget slik at de bare kan brukes i operasjoner med andre variabler av samme type. For noen operasjoner, disse konfliktene er en forlengelse av enkel logikk: Hvis en programmerer prøver å trekke en karakter fra et heltall, vil han få en motstridende typefeil. Annen type konflikter er mindre intuitivt. For eksempel, mens både et heltall og en flåte er tall som har verdier som kan brukes sammen på noen matematisk ligning, skriv konflikter hindre C fra trekke et flyt desimal fra et heltall.

Re-casting

Den måten å håndtere disse type konflikter er midlertidig skyve tall som samme type. For eksempel, for å trekke Float A fra Integer B, en programmerer ville midlertidig recast B som en dupp. Han ville gjøre dette med koden: "(float) B - A;" som ikke ville påvirke den faktiske type B, men midlertidig endre det for ligningen. Programmerere kan skyve tall som andre tall, men de vil vinne eller tape særegne kvaliteter. Den int 50 støpt som en dupp blir 50.00 mens float 35.55 omarbeiding som en int blir 35.