1 / 14

A Pointer: an address , a reference , a location of the computer memory

A Pointer: an address , a reference , a location of the computer memory. A pointer of what?. int, char, bool, double, or any kind of data type. Can be. need to know so the computer knows how to read or store the contents of the memory. Define pointers. // define pointers

Download Presentation

A Pointer: an address , a reference , a location of the computer memory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Pointer: an address, a reference, a location of the computer memory A pointer of what? int, char, bool, double, or any kind of data type Can be need to know so the computer knows how to read or store the contents of the memory.

  2. Define pointers // define pointers int a, *ap; // can’t use a and *a at the same time; double b, *bp; token k, *kp; a is an integer, ap is a pointer to an integer; b is a double, bp is a pointer to a double; k is a token, kps a pointer to a token.

  3. A Pointer points to a location of the computer memory } 4 bytes FFFFA080 FFFFA084 a ap b bp k kp 5 int a=5; int *ap; double b=2.3; double *bp; token k; token *kp; bp = new double; *bp = 3.14; *ap = 7; // not new-ed yet ? 2.3 1 3.14 1 ?

  4. A Pointer points to a location of the computer memory } 4 bytes FFFFA080 FFFFA084 a ap b c 5.1 double a=5.1; double *ap; double *b,*c; ap = &a; // &a :the address of a *ap=1.7; b = new double; *b = 3.14; b = &a; c = b; 1.7 3 1 4 1 new 2 2 3.14 3 4

  5. The name of an array is a pointer } 4 bytes a p int a[4]={5,60,700,8000}; int *p; p=a; cout << *p << endl; cout << *p+1 << endl; cout << *(p+1) << endl; cout << *(p+2) << endl; cout << *(p+3) << endl; cout << *(p+4) << endl; 1 1 2 2 FFFFA080 FFFFA084 5 6 60 700 8000 #$&@

  6. Call by value double fun(int n, double p) { for (int i=0; i < 2; i++) p = p-n; return p; } n p i 113.4 118.4 2 1 1+4=5 i k p s 123.4 int main() { int i=1,k=4; double p,s=123.4; p = fun(i+k,s); cout << i << “\n“ << k << “\n“ << p << “\n“ << s; } 1 4 113.4 123.4

  7. Call by reference double fun(int n, double & p) { for (int i=0;i < 2;i++) p = p-n; return p; } n p i 1 2 1+4=5 &s i k p s int main() { int i=1,k=4; double p,s=123.4; p = fun(i+k,s); cout << i << “\n“ << k << “\n“ << p << “\n“ << s; } 1 4 113.4 113.4 118.4 113.4

  8. Call by Value vs. Call by Reference int add_one_V(int n) { n++; cout << “1:“ << n << endl; return n; } n int sub_one_R(int &n) { n--; return n; } n 2 1 1:6 2:6 5 3:4 4 int main() { int a,b=5; a = add_one_V(b); cout << “2:“ << a << “ “ << b << endl; a = sub_one_R(b); cout << “3:“ << a << “ “ << b << endl; } &b a b 1 3 2 3

  9. Passing Arrays as Parameters int top(int a[]) { int i=0; return a[i]; } a i int third(int a[]) { int i=2; return a[i]; } a i int main() { int a[4]={10,200,300,400}; cout << top(a) << endl; cout << third(a) << endl; } a a+2 10 300

  10. Arrays passed as References void fun(int a[]) { int i=2; a[i] += 5; } a i int main() { int a[4]={10,200,300,400}; fun(a); cout << a[0] << “ “; cout << a[1] << “ “; cout << a[2] << “ “; cout << a[3] << endl; return 1; } a a[2] 10 200 305 400

  11. Pass the size of an Array void add_one_to_all(int A[], int size) { for (int i=0;i<size;i++) A[i]++; } i A size int main() { const int size=4; int a[size]={1,2,3,4}; add_one_to_all(a,size); for (int i=0;i<size;i++) cout << a[i] << “ “; return 1; } size i a 2 3 4 5

  12. Vector passed as Value void add_one_to_all(vector<int> v) { for (int i=0;i<v.size();i++) v[i]++; } i v int main() { vector<int> a(4); int i; for (i=0;i<a.size();i++) a[i]=i+1; add_one_to_all(a); for (i=0;i<a.size();i++) cout << a[i] << “ “; } i a 1 2 3 4

  13. Vector passed as Reference void add_one_to_all(vector<int> &v) { for (int i=0;i<a.size();i++) a[i]++; } i v int main() { vector<int> a(4); for (int i=0;i<a.size();i++) a[i]=i+1; add_one_to_all(a); for (int i=0;i<a.size();i++) cout << a[i] << “ “; } &a i a 2 3 4 5

  14. C-string is an array of char } 4 bytes a b c d 1 byte } char *a = "Dennis"; char b[7] = {'D','e','n', 'n','i','s','\0'}; char *c=b; cout << *a << “ “ << b[0] << endl; cout << *(a+2) << “ “ << b[2] << endl; cout << a << “ “ << b << endl; char *d[2] = {c, "Li"}; cout << d[0] << " " << d[1] << endl;; 1 1 d[0] d[1] D D n n Dennis Dennis Dennis Li

More Related