Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wskaźniki i referencje

Ostatnio zmodyfikowano 2014-10-27 22:06
Autor Wiadomość
wilkoo13
Temat założony przez niniejszego użytkownika
Wskaźniki i referencje
» 2014-10-27 15:03:28
Może mi ktoś wytłumaczyć ostatnią linijkę kodu? Czemu przed nawiasami jest * ? I wgl co te nawiasy robią?

C/C++
//: C03:CastFromVoidPointer.cpp
int main() {
    int i = 99;
    void * vp = & i;
    // Can't dereference a void pointer:
    // *vp = 3; // Compile-time error
    // Must cast back to int before dereferencing:
    *(( int * ) vp ) = 3;
} ///:~
P-119507
michal11
» 2014-10-27 16:17:14
Deklarujesz wskaźnik na int
int *
 do którego od razu przypisujesz wartość
*( wskaznik ) =
.
Prościej to wygląda tak:
C/C++
int * pointer;
* pointer = 3;

W twoim przykładzie są potrzebne nawiasy żeby nie było problemów z priorytetami operatorów.
P-119511
colorgreen19
» 2014-10-27 16:54:00
a nie podstawiasz wartość 3 do zmiennej przez wskaźnik vp, który wcześniej rzutujesz na typ int* ? bo na deklaracje to mi nie wyglada...
P-119513
michal11
» 2014-10-27 19:43:03
Aaa, słusznie, nie zwróciłem uwagi na nazwy zmiennych :/
P-119530
wilkoo13
Temat założony przez niniejszego użytkownika
» 2014-10-27 21:50:00
Hmm, a czy
C/C++
*(( int * ) vp ) = 3;
można zapisać
C/C++
*( int * ) vp = 3;
Czy to będzie to samo?
P-119548
Monika90
» 2014-10-27 22:06:28
Tak, to jest to samo.
P-119550
« 1 »
  Strona 1 z 1