CS2304: C++ for Java Programmers
CS 2304: Pointers, References, and Memory
McQuain 2012, Gusukuma 2015
CS 2304: Pointers, References, and Memory McQuain 2012, Gusukuma - - PowerPoint PPT Presentation
CS2304: C++ for Java Programmers CS 2304: Pointers, References, and Memory McQuain 2012, Gusukuma 2015 CS2304: C++ for Java Programmers Memory Where your variables are stored Where your code is stored McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
target of the pointer
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
Address Name:value 0001 x:42 0002 y:92 0003 p1:0001 0004 p2:0002 0005 r1:0001 0006 r2:0002 0007 p3:0004
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
int a = 27; //aRef is a REFERENCE to a int& aRef = a; //aRef2 is also a REFERENCE to a int& aRef2 = aRef; //aPt is a pointer to where a is int* aPt = &a; //aRef3 is ALSO a reference to a int& aRef3 = *aPt; int aCopy = aRef3;
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
//declaration of an array int foo[5] = {16,2,77,40,8};
int* fooPt = foo;//WHAAATTT?! int b = fooPt[2]; //What’s b’s value? int& bRef = fooPt[2]; bRef = 36;//What’s the contents of foo?
http://www.geeksforgeeks.org/g- fact-5/
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
modifies the original variable
type* points the way *var is what it says type& is a sneaky change &var is a pointer exchange
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
time e.g. dynamically sizing containers
dynamically and instead make use of references/return by reference via function arguments
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
void foo(ifstream input); // wrong void foo(ifstream& input); // right
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015
CS2304: C++ for Java Programmers
McQuain 2012, Gusukuma 2015