[C++] wskaźniki - kolejne wartości adresów w pętli for
Ostatnio zmodyfikowano 2015-03-01 12:20
Mlorism Temat założony przez niniejszego użytkownika |
[C++] wskaźniki - kolejne wartości adresów w pętli for » 2015-03-01 09:41:01 Witam, dopiero zaczynam poznawać wskaźniki i nie rozumiem dlaczego jedna wersja kodu działa jak powinna, czyli pokazuje mi kolejne adresy wskaźników z tablicy, a druga pokazuje mi tylko 2, a następnie same zera. Używam CodeBlocks'a. Kod działający poprawnie: #include <iostream>
using namespace std; int ile, * bit;
int main() { cout << "Ile chcesz poznac adresow bitowych: "; cin >> ile; bit = new int[ ile ]; for( int i = 0; i < ile; i++ ) { cout <<( int ) bit << endl; bit++; } return 0; }
Niepoprawny ma tylko inną pętlę for: for( int i = 0; i < ile, i++ ) { cout <<( int ) bit[ i ] << endl; }
|
|
aksen |
» 2015-03-01 12:20:16 bit - jest wskaźnikiem na int (a więc zawiera adres jakiejś komórki z typem int)
cout << (int)bit << endl; - tu wypisujesz ten adres dziesiętnie cout << bit << endl; - tak można go wypisać szesnastkowo
cout <<( int ) bit[ i ] << endl; - a tak wypisujesz ZAWARTOŚĆ KOMÓRKI PAMIĘCI (a nie adres) na którą wskazuje wskaźnik bit z przesunięciem o 'i' komórek (konwersja na int jest tu niepotrzebna) cout << *(bit+i) << endl; - to samo co wyżej tylko inaczej zapisane |
|
« 1 » |