Błąd: Nie można wyłuskać odwołania do int w C++

Blad Nie Mozna Wyluskac Odwolania Do Int W C



Języki programowania wymagają bibliotek, funkcji, składni i innych rzeczy podczas pracy z nimi. Istnieje zatem ryzyko, że nasze kody będą zawierać błędy. Programowanie w C++ wiąże się z wieloma różnymi typami błędów. Omówimy tutaj błąd „nie można wyłuskiwać int w C++”. Ten błąd występuje, gdy próbujemy użyć operatora dereferencji „*” z danymi typu całkowitego „int”, ponieważ „int” jest pierwotnym typem danych. Nie możemy dereferować „int” w programowaniu w C++. W tym przypadku błąd „int nie może zostać wyłuskany w C++” i jego rozwiązanie zostanie dokładnie zbadane. W tym przewodniku podano niektóre kody, w których zobaczymy, jak występuje ten błąd i jak obsługiwać tego typu błędy w C++.

Przykład 1: Dereferencja Int







W tym kodzie spróbujemy wyłuskać int w C++. Teraz po prostu dołączamy plik nagłówkowy „iostream”, aby móc korzystać ze zdefiniowanych funkcji. Poniżej używamy „przestrzeni nazw std” i wywołujemy tutaj metodę „main()”. Następnie deklarujemy zmienną „my_num” z typem danych „int” i przypisujemy do tej zmiennej „99”.



Teraz deklarujemy „moja_wartość” typu danych „int” i inicjujemy ją wartością „*my_num”, co oznacza, że ​​próbujemy wyłuskać zmienną „my_num”, która jest typu danych „int”. Błąd jest generowany w tej linii podczas kompilacji, ponieważ nie możemy wyłuskać wartości „int”. Chcemy wyświetlić wartość, którą otrzymamy po wyłuskaniu int, dlatego umieszczamy „cout”, w którym dodaliśmy zmienną „moja_wartość”.



Kod 1:





#include
używając przestrzeni nazw std;
int główny ( ) {
int mój_num = 99 ;
int moja_wartość = * mój_num;
cout << „Wartość, jaką uzyskujemy poprzez wyłuskanie int, to:” << moja_wartość << koniec;
powrót 0 ;
}

Wyjście:



Tutaj możemy zauważyć, że nie jest wyświetlana żadna wartość i pojawia się błąd informujący, że istnieje nieprawidłowy argument typu jednoargumentowego „*”. Oznacza to, że nie możemy odwoływać się do „int” w C++.

Rozwiązanie 1: Bez dereferencji

Tutaj otrzymamy wartość całkowitą bezpośrednio, bez dereferencji. Importujemy plik nagłówkowy „iostream”, ponieważ obecne są pewne definicje funkcji. Następnie wpisujemy „namespace std” wraz ze słowem kluczowym „using”, a następnie wywołujemy tutaj metodę „main()”. Teraz inicjujemy zmienną „my_num” typu danych „int” wartością „99”.

Następnie inicjujemy kolejną zmienną o nazwie „moja_wartość” i przypisujemy jej zmienną „moja_liczba”, która zawiera liczbę całkowitą. Następnie otrzymujemy tę wartość całkowitą bezpośrednio, bez usuwania referencji, umieszczając „moja_wartość” w „cout”. To pobiera i wyświetla wartość całkowitą.

Kod 1:

#include
używając przestrzeni nazw std;
int główny ( ) {
int mój_num = 99 ;
int moja_wartość = moja_liczba;
cout << „Wartość, którą otrzymujemy bez dereferencji int, to:” << moja_wartość << koniec;
powrót 0 ;
}

Wyjście:

Reprezentowana jest tutaj wartość całkowita, którą otrzymujemy bez dereferencji w naszym kodzie C++. Mamy bezpośredni dostęp do tej wartości całkowitej i wyświetlamy ją.

Rozwiązanie 2: Poprzez wyłuskanie wskaźnika

Plik nagłówkowy „iostream” zawiera pewne definicje funkcji; zaimportowaliśmy je. Następnie uruchamiamy tutaj funkcję „main()” po wpisaniu „namespace std” i słowie kluczowym „using”. Zmienna „my_num” typu danych „int” jest teraz inicjowana wartością „99”.

Następnie inicjujemy wskaźnik „my_ptr” i przypisujemy do niego adres zmiennej „my_num”. Poniżej usuwamy referencję do wskaźnika i przypisujemy uzyskaną przez to wartość do zmiennej „moja_wartość”, inicjując „moja_wartość” za pomocą „*my_ptr”. Teraz umieszczamy „cout”, w którym przekazujemy zmienną „moja_wartość”, aby wyświetlić wartość całkowitą, którą otrzymamy poprzez wyłuskanie wskaźnika.

Kod 2:

#include
używając przestrzeni nazw std;
int główny ( ) {
int mój_num = 99 ;
wew * mój_ptr = & mój_num;
int moja_wartość = * mój_ptr;
cout << „Wartość int, którą otrzymujemy po wyłuskaniu wskaźnika, to:” << moja_wartość << koniec;
powrót 0 ;
}

Wyjście:

Tutaj wyświetlana jest teraz wartość całkowita, którą otrzymamy po wyłuskaniu wskaźnika w naszym kodzie. Jest to zatem właściwy sposób stosowania dereferencji w C++.

Przykład 2: Dereferencja Int

Spróbujmy wyłuskać „int” w C++ w tym kodzie. Aby skorzystać z funkcji zdefiniowanych w „iostream”, wystarczy dołączyć plik nagłówkowy „iostream”. W tym miejscu używamy „przestrzeni nazw std” i wywołujemy funkcję „main()”. Następnie tworzymy zmienną „a” i nadajemy jej typ danych „int” wraz z wartością „75”.

Poniżej tworzymy wskaźnik o nazwie „newPointer” i przypisujemy do niego adres zmiennej „a” za pomocą „&”. Następnie inicjujemy zmienną „num” poniżej za pomocą „*a”, co wskazuje, że próbujemy wyłuskać zmienną „a”, która jest typu danych „int”. Ponieważ nie możemy usunąć referencji do „int”, podczas kompilacji w tej linii pojawia się błąd. Następnie używamy również „cout”, w którym dodajemy zmienną „num”.

Kod 2:

#include
używając przestrzeni nazw std;
int główny ( ) {
int a = 75 ;
wew * nowyPointer = & A;
liczba całkowita = * A;
cout << „Wartość wyłuskiwania int wynosi:” << na jednego << koniec;
powrót 0 ;
}

Wyjście:

Tutaj widzimy, że nie jest pokazana żadna wartość i pojawia się komunikat o błędzie informujący o „nieprawidłowym parametrze typu jednoargumentowego”*”. Oznacza to, że „int” nie może być dereferencjonowany w C++.

Rozwiązanie 1: Bez dereferencji

Nie będziemy musieli usuwać referencji, aby natychmiast uzyskać wartość całkowitą. Importujemy go, ponieważ plik nagłówkowy „iostream” zawiera pewne definicje funkcji. Funkcja „main()” jest następnie wywoływana po wprowadzeniu słów kluczowych „using” i „namespace std”. Zmienna „a” typu danych „int” jest teraz inicjowana wartością „75”. Następnie wstawiamy „a” do „cout”, aby natychmiast uzyskać tę wartość całkowitą, bez dereferencji. Pobiera to wartość całkowitą i wyświetla ją tutaj.

Kod 1:

#include
używając przestrzeni nazw std;
int główny ( ) {
int a = 75 ;
cout << „Wartość, którą otrzymujemy bez dereferencji, to: „ << A << koniec;
powrót 0 ;
}

Wyjście:

Tutaj prezentowana jest wartość całkowita uzyskana z naszego kodu C++ bez dereferencji. Ta wartość całkowita jest natychmiast dostępna i jest tutaj pokazana.

Rozwiązanie 2:

Importujemy plik nagłówkowy „iostream” zawierający definicje niektórych funkcji. Tutaj wpisujemy „namespace std” i słowo kluczowe „using” przed wykonaniem funkcji „main()”. Zmiennej „a” przypisana jest wartość „75”.

Następnie deklarujemy wskaźnik o nazwie „mypointer” i inicjujemy go adresem zmiennej „a”. Poniżej usuwamy referencję do wskaźnika i przypisujemy uzyskaną z tego wartość do zmiennej „result”, inicjując „wynik” za pomocą „*mypointer”. Po wyłuskaniu wskaźnika wydajemy polecenie „cout” i przekazujemy zmienną „result”, aby pokazać wartość całkowitą.

Kod 2:

#include
używając przestrzeni nazw std;
int główny ( ) {
int a = 75 ;
wew * mójwskaźnik = & A;
wynik int = * mójwskaźnik;
cout << „Wartość, jaką uzyskujemy poprzez wyłuskanie wskaźnika, to:” << wynik << koniec;
powrót 0 ;
}

Wyjście:

Jest to właściwa technika stosowania dereferencji w C++. Renderuje wartość całkowitą, którą uzyskaliśmy po wyłuskaniu wskaźnika, zamiast wyłuskiwania „int”.

Wniosek

Sprawdziliśmy, że gdy próbujemy uzyskać wartość poprzez wyłuskanie „int” w C++, wystąpi błąd „nieprawidłowy parametr typu jednoargumentowego „*” mającego int”, co oznacza, że ​​„int nie można wyłuskać w C++”. Wyjaśniliśmy również rozwiązanie tego błędu. Użyliśmy kodu, w którym wystąpiły błędy, oraz kodów, w których podaliśmy rozwiązanie tego błędu w tym przewodniku.