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
Last revisionBoth sides next revision
cplusplus:pointers_3_slides [2019/03/31 21:29] mithatcplusplus:pointers_3_slides [2021/10/24 02:45] – [Pointer arithmetic: subtraction] 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.
 +
 +===== Pointer arithmetic: addition =====
 +  * 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 82:
 </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 147: Line 151:
 ===== Summary ===== ===== Summary =====
  
-The examples below assume:+The following examples below assume:
  
 <code cpp> <code cpp>
Line 166: Line 170:
  
 ^ 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.txt · Last modified: 2021/10/24 02:46 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki