User Tools

Site Tools


cplusplus:pointers_3_slides

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cplusplus:pointers_3_slides [2019/03/31 21:32] – [Summary] mithatcplusplus:pointers_3_slides [2021/10/24 02:46] (current) – [Pointer arithmetic: addition] mithat
Line 6: Line 6:
 Pointers, arrays, arithmetic.\\ Pointers, arrays, arithmetic.\\
 Mithat Konar\\ Mithat Konar\\
-March 312019+October 232021
  
 ===== Pointers and arrays ===== ===== Pointers and arrays =====
  
   * Arrays and pointers are closely related.   * Arrays and pointers are closely related.
-  * An array name is like a constant pointer:+  * Array names are like a constant pointers:
     * the block of memory where an array name points cannot be changed,     * the block of memory where an array name points cannot be changed,
     * what is stored there can change.     * what is stored there can change.
Line 51: Line 51:
 ===== Pointer arithmetic ===== ===== Pointer arithmetic =====
  
-  * Pointer arithmetic works differently from normal arithmetic.+  * Pointer arithmetic works differently than normal arithmetic.
   * ''+'',  ''+='', ''-'', ''-='', ''++'', ''--'' do math in terms of the size of the pointed data type.   * ''+'',  ''+='', ''-'', ''-='', ''++'', ''--'' do math in terms of the size of the pointed data type.
   * E.g., adding 1 to a pointer makes it point to the next block of memory corresponding to the size of the underlying type.   * E.g., adding 1 to a pointer makes it point to the next block of memory corresponding to the size of the underlying type.
 +
  
 <file cpp pointer-math.cpp> <file cpp pointer-math.cpp>
Line 78: Line 79:
 </file> </file>
  
-===== Pointer arithmetic =====+===== Pointer arithmetic: pointer difference =====
  
 Subtracting one pointer from another returns the number of elements between two addresses: Subtracting one pointer from another returns the number of elements between two addresses:
Line 166: Line 167:
  
 ^ Operation                                                        ^ Example ^ ^ Operation                                                        ^ Example ^
-|Increment <code>pointer++</code>                                          |<code cpp>valptr++;  // points at 7</code>+|<code>pointer++</code>                                          |<code cpp>valptr++;  // points at 7</code>
-|Decrement <code>pointer--</code>                                          |<code cpp>valptr--;  // now points at 4</code>+|<code>pointer--</code>                                          |<code cpp>valptr--;  // now points at 4</code>
-|Arithmetic <code>pointer + int</code> and <code>pointer - int</code> |<code cpp>cout << *(valptr + 2); // prints 11</code>+|<code>pointer + int</code>                                      |<code cpp>cout << *(valptr + 2); // prints 11</code>
-|Compound assignment <code>pointer += int</code>and<code>pointer -= int</code> |<code cpp>valptr = vals; // points at 4+|<code>pointer += int</code>                                     |<code cpp>valptr = vals; // points at 4
 valptr += 2;   // points at 11</code> | valptr += 2;   // points at 11</code> |
-|Pointer subtraction <code>pointer - pointer</code>                                |<code cpp>cout << valptr - val; // # of ints between valptr and val</code> |+|<code>pointer - pointer</code>                                  |<code cpp>cout << valptr - vals; // # of ints between valptr and vals</code> |
  
cplusplus/pointers_3_slides.1554067943.txt.gz · Last modified: 2019/03/31 21:32 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki