Feil: Int kan ikke skilles fra i C++

Feil Int Kan Ikke Skilles Fra I C



Programmeringsspråk trenger biblioteker, funksjoner, syntaks og andre ting når du arbeider med dem. Dermed er det en sjanse for at kodene våre vil inneholde feil. Programmering i C++ har mange forskjellige typer feil. Vi vil diskutere om feilen 'int kan ikke derefereres i C++' her. Denne feilen oppstår når vi prøver å bruke dereference-operatoren '*' med heltallstypen data 'int' fordi 'int' er en primitiv datatype. Vi kan ikke avreferere 'int' i C++-programmering. Her kan feilen 'int kan ikke derefereres i C++' og løsningen bli utforsket grundig. Noen koder er gitt i denne veiledningen der vi vil se hvordan denne feilen oppstår og hvordan man håndterer denne typen feil i C++.

Eksempel 1: Derereferanse Int







I denne koden vil vi prøve å derifisere 'int' i C++. Nå inkluderer vi ganske enkelt 'iostream'-hodefilen for å bruke de definerte funksjonene. Under dette bruker vi 'navneområdet std' og påkaller 'main()'-metoden her. Deretter erklærer vi 'my_num'-variabelen med 'int'-datatypen og tildeler '99' til denne variabelen.



Nå erklærer vi 'my_value' av 'int'-datatypen og initialiserer den med '*my_num' som betyr at vi prøver å avreferere 'my_num'-variabelen som er av 'int'-datatypen. Feilen genereres på denne linjen under kompilering fordi vi ikke kan avreferere 'int'. Vi ønsker å vise verdien vi får etter dereferering av int, så vi plasserer 'cout' der vi la til 'my_value'-variabelen.



Kode 1:





#include
bruker navneområde std;
int main ( ) {
int mitt_nummer = 99 ;
int min_verdi = * mitt_nummer;
cout << 'Verdien vi får gjennom å referere int er:' << min_verdi << endl;
komme tilbake 0 ;
}

Produksjon:



Her kan vi kanskje legge merke til at ingen verdi vises og det oppstår en feil som sier at det er et ugyldig typeargument av unær '*'. Dette betyr at vi ikke kan avreferere 'int' i C++.

Løsning 1: Uten avreferanse

Her vil vi få heltallsverdien direkte uten dereferering. Vi importerer 'iostream'-headerfilen ettersom noen funksjonsdefinisjoner er til stede. Deretter skriver vi 'namespace std' sammen med 'using' nøkkelordet og kaller deretter 'main()' metoden her. Nå initialiserer vi 'my_num'-variabelen til 'int'-datatypen med verdien '99'.

Deretter initialiserer vi en annen variabel med navnet 'my_value' og tildeler den 'my_num'-variabelen som inneholder heltallstallet. Etter dette får vi denne heltallsverdien direkte uten å referere ved å plassere 'my_value' i 'cout'. Dette henter og viser heltallsverdien.

Kode 1:

#include
bruker navneområde std;
int main ( ) {
int mitt_nummer = 99 ;
int min_verdi = mitt_nummer;
cout << 'Verdien vi får uten å referere int er:' << min_verdi << endl;
komme tilbake 0 ;
}

Produksjon:

Heltallsverdien gjengis her som vi får uten avreferanse i C++-koden vår. Vi får direkte tilgang til denne heltallsverdien og viser den.

Løsning 2: Ved å fjerne referansen til pekeren

Headerfilen 'iostream' inneholder visse funksjonsdefinisjoner; vi importerte dem. Deretter kjører vi «main()»-funksjonen her etter å ha skrevet «namespace std» og «using»-nøkkelordet. 'my_num'-variabelen til 'int'-datatypen er nå initialisert med verdien '99'.

Etter dette initialiserer vi en 'my_ptr'-peker og tildeler adressen til 'my_num'-variabelen til denne pekeren. Under dette, derefererer vi pekeren og tildeler verdien vi får gjennom dette til 'min_verdi'-variabelen da vi initialiserte 'min_verdi' med '*min_ptr'. Nå plasserer vi 'cout' der vi sender 'my_value'-variabelen for å vise heltallsverdien som vi får gjennom å referere pekeren.

Kode 2:

#include
bruker navneområde std;
int main ( ) {
int mitt_nummer = 99 ;
int * min_ptr = & mitt_nummer;
int min_verdi = * min_ptr;
cout << 'Verdien av int vi får med å referere en peker er: ' << min_verdi << endl;
komme tilbake 0 ;
}

Produksjon:

Heltallsverdien som vi får etter å ha referert pekeren i koden vår, vises nå her. Så dette er den riktige måten å bruke dereferens på i C++.

Eksempel 2: Derereferanse Int

La oss prøve å avreferere 'int' i C++ i denne koden. For å bruke funksjonene som er definert i 'iostream', trenger vi bare å inkludere 'iostream'-headerfilen. Det er her vi bruker 'navneområdet std' og kaller 'main()'-funksjonen. Deretter lager vi 'a'-variabelen og gir den datatypen 'int' sammen med verdien av '75'.

Under denne lager vi en peker kalt 'newPointer' og tildeler adressen til 'a'-variabelen til denne pekeren ved hjelp av '&'. Deretter initialiserer vi 'num'-variabelen nedenfor med '*a' som indikerer at vi prøver å avreferere 'a'-variabelen som er av datatypen 'int'. Siden vi ikke kan avreferere 'int', blir det nå produsert en feil på denne linjen under kompilering. Etter dette bruker vi også 'cout' der vi legger til 'num'-variabelen.

Kode 2:

#include
bruker navneområde std;
int main ( ) {
int a = 75 ;
int * newPointer = & en;
int tall = * en;
cout << 'Verdien som refererer int er:' << på en << endl;
komme tilbake 0 ;
}

Produksjon:

Her kan vi se at det ikke vises noen verdi og en feilmelding som sier en 'ugyldig typeparameter av unær'*' vises. Dette indikerer at 'int' ikke kan skilles fra i C++.

Løsning 1: Uten avreferanse

Vi trenger ikke å referere for å få heltallsverdien umiddelbart. Vi importerer den siden 'iostream'-headerfilen inneholder visse funksjonsdefinisjoner. Funksjonen 'main()' aktiveres deretter etter at nøkkelordene 'using' og 'namespace std' er lagt inn. 'a'-variabelen for 'int'-datatypen er nå initialisert med verdien '75'. Etterpå setter vi inn 'a' i 'cout' for å oppnå denne heltallsverdien umiddelbart uten å avvise. Dette henter heltallsverdien og viser den her.

Kode 1:

#include
bruker navneområde std;
int main ( ) {
int a = 75 ;
cout << 'Verdien vi får uten referanse er:' << en << endl;
komme tilbake 0 ;
}

Produksjon:

Heltallsverdien som er hentet fra vår C++-kode uten derereferanse er presentert her. Denne heltallsverdien er umiddelbart tilgjengelig og vises her.

Løsning 2:

Vi importerer 'iostream'-headerfilen som inneholder noen funksjonsdefinisjoner. Her skriver vi 'namespace std' og 'using' nøkkelordet før vi utfører 'main()'-funksjonen. Verdien av '75' er tilordnet 'a'-variabelen.

Deretter erklærer vi en peker kalt 'mypointer' og initialiserer den med adressen til 'a'-variabelen til den. Under dette, derefererer vi pekeren og tildeler verdien vi får fra denne til 'resultat'-variabelen når vi initialiserer 'resultatet' med '*mypointer'. Etter å ha referert pekeren, plasserer vi 'cout'-kommandoen og sender 'resultat'-variabelen for å vise heltallsverdien.

Kode 2:

#include
bruker navneområde std;
int main ( ) {
int a = 75 ;
int * mypointer = & en;
int resultat = * mypointer;
cout << 'Verdien vi får gjennom å referere pekeren er:' << resultat << endl;
komme tilbake 0 ;
}

Produksjon:

Dette er den riktige teknikken for å bruke dereferering i C++. Den gjengir heltallsverdien som vi oppnådde etter at pekeren ble referert til i stedet for å referere 'int'.

Konklusjon

Vi undersøkte at når vi prøver å få verdien ved å dereferere 'int' i C++, vil den 'ugyldige typeparameteren til unær '*' med int'-feil oppstå, noe som betyr at 'int ikke kan derefereres i C++'. Vi forklarte også løsningen på denne feilen. Vi brukte koden der feilene oppsto og kodene der vi ga løsningen på denne feilen i denne veiledningen.