Pointere og bitwise operatorer
Hejsa.Jeg er gået igang med at terpe lidt læsemateriale om C++ og jeg har fundet nogle online bøger. En del af det giver fint mening, men jeg er efterhånden nået til det, som jeg aldrig har forstået, og som jeg ikke rigtig får noget ud af at afprøve eksempler med - pointere, referencer og bitwise operatorer.
F.eks. kan man med pointere modificere en variabel, som ligger udenfor en funktion. En ting er at man kan det, men man ser jo pointere og referencer tit og ofte, men jeg mangler virkelig en ide om, hvad disse kan bruges til, rent praktisk. Et eksempel, der bare viser at man kan ændre en udenforliggende variabel med pointere giver ikke megen mening for mig.
Ligeledes gælder bitwise operatorer, og de er om muligt endnu mere forvirrende for mig. Jeg lavede et lidt underligt hjemmestikket eksempel, hvis output jeg overhovedet ikke forstår:
#include <iostream>
using namespace std;
int main() {
int a;
for(int i=0; i<10; i++) {
a = 1 << i;
cout << a << endl;
}
return 0;
}
Giver outputtet:
1
2
4
8
16
32
64
128
256
512
Men hvorfor? Hvis jeg i øvrigt prøver at ændre
int a = 1 << i;
til f.eks.
int a = 1 & i;
int a = 1 | i;
int a = ~i;
Er forvirringen stadig stor. Hvad kan jeg gøre for at opnå bedre forståelse af pointere, referencer og bitwise operatorer? Jeg er virkelig lidt på bar bund.
Den online-bog, jeg følger, kan findes her (Thinking in C++):
http://www.ceremade.dauphine.fr/~msfr/cpp/C++_Eckel/TIC2Vone-distribution/html/Frontmatter.html
Jeg håber, nogle kan oplyse mig lidt. Det er noget af en smørre, men håber I forstår nogenlunde hvad jeg mener.
På forhånd tak.