Charles Tritt
/
PointerPlay
Demonstrate basic pointer use.
main.cpp@1:66b36106613a, 2021-11-04 (annotated)
- Committer:
- CSTritt
- Date:
- Thu Nov 04 13:13:30 2021 +0000
- Revision:
- 1:66b36106613a
- Parent:
- 0:f4431aea05f2
Added explicit serial port creation, but not fully updated.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CSTritt | 0:f4431aea05f2 | 1 | /* |
CSTritt | 0:f4431aea05f2 | 2 | Project: PointerPlay |
CSTritt | 0:f4431aea05f2 | 3 | File: main.cpp |
CSTritt | 0:f4431aea05f2 | 4 | |
CSTritt | 0:f4431aea05f2 | 5 | Demonstrates some uses of pointers. |
CSTritt | 0:f4431aea05f2 | 6 | |
CSTritt | 0:f4431aea05f2 | 7 | Written by: Dr. C. S. Tritt |
CSTritt | 1:66b36106613a | 8 | Created: 11/4/21 (v. 1.1) |
CSTritt | 0:f4431aea05f2 | 9 | |
CSTritt | 0:f4431aea05f2 | 10 | */ |
CSTritt | 0:f4431aea05f2 | 11 | #include "mbed.h" |
CSTritt | 1:66b36106613a | 12 | Serial pc(USBTX, USBRX, 9600); // Explicitly create serial connection. |
CSTritt | 0:f4431aea05f2 | 13 | |
CSTritt | 0:f4431aea05f2 | 14 | int main() { |
CSTritt | 0:f4431aea05f2 | 15 | printf("\nPointer Play -- \"a is a.\"\n"); |
CSTritt | 0:f4431aea05f2 | 16 | // Each set of lines below create a variable and a pointter to it. |
CSTritt | 0:f4431aea05f2 | 17 | float myNum1 = 1.23f; // Initialize the variable. |
CSTritt | 0:f4431aea05f2 | 18 | float* pNum1 = &myNum1; // Initialize the pointer to point to it. |
CSTritt | 0:f4431aea05f2 | 19 | printf("myNum1 is %f and *pNum1 is %f.\n", myNum1, *pNum1); |
CSTritt | 0:f4431aea05f2 | 20 | int myNum2; // Create a variable. |
CSTritt | 0:f4431aea05f2 | 21 | int* pNum2 = NULL; // Create a NULL (unassigned) pointer. |
CSTritt | 0:f4431aea05f2 | 22 | pNum2 = &myNum2; // Put the address in the pointer. |
CSTritt | 0:f4431aea05f2 | 23 | *pNum2 = 15; // Dereference the pointer to store a value. |
CSTritt | 1:66b36106613a | 24 | pc.printf("myNum2 is %d and *pNum2 is %d.\n", myNum2, *pNum2); |
CSTritt | 0:f4431aea05f2 | 25 | // Examine the addresses (pointer values). |
CSTritt | 1:66b36106613a | 26 | pc.printf("pNum1 is %p and pNum2 is %p.\n", pNum1, pNum2); |
CSTritt | 0:f4431aea05f2 | 27 | while(true); // Wait here forever. |
CSTritt | 0:f4431aea05f2 | 28 | } |