Demonstrate basic pointer use.

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }