This assignment will give you a chance to perform some simple tasks with pointers. The tasks are only loosely related to each other. Start the assignment by copying the code below and pasting it into a .cpp file, then add statements to accomplish each of the tasks listed. Don't delete any of the given code or comments. Some of the tasks will only require a single C++ statement, others will require more than one.
No documentation is required for this project.
/*
Type your code after each of the commented instructions below (except that the statements
for instructions 11 and 21 should be written where the instructions indicate). I have
written the first statement for you.
*/
#include <iostream>
using namespace std;
int main() {
// 1. Create two integer variables named x and y.
int x;
// 2. Create an int pointer named p1.
// 3. Store the address of x in p1.
// 4. Use only p1 (not x) to set the value of x to 99.
// 5. Using cout and x (not p1), display the value of x.
// 6. Using cout and the pointer p1 (not x), display the value of x.
// 7. Store the address of y into p1.
// 8. Use only p1 (not y) to set the value of y to -300.
// 9. Create two new variables: an int named temp, and an int pointer named p2. Make p2
// point to x.
// 10. Use only temp, p1, and p2 (not x or y) to swap the values in x and y. (This will take
// a few statements. Don't use a swap function.)
// 11. Write a function with the following signature: void noNegatives(int* x). The function
// should accept the address of an int variable. If the value of this integer is
// negative then it should set it to zero.
// Place the prototype for this function above the main function, and the definition
// below main().
// 12. Invoke the function twice: once with the address of x as the argument, and once with
// the address of y. Use x or y for the argument (not p1 or p2).
// 13. Use p2 to display the values in x and y (this will require both assignment statements
// and cout statements). You can use x and y in assignment statements, but not in your
// cout statement. This should produce the output
//
// x is: 0
// y is: 99
// 14. Create an int array named 'a' with two elements. Make p2 point to the first element
// of a.
// 15. Use only p2 and x (not a) to initialize the first element of a with the value of x.
// 16. Use only p2 and y (not a) to initialize the second element of a with the value of y.
// Leave p2 pointing to the first element of a. Don't use pointer arithmetic.
// Hint: don't forget that pointers and arrays are the same thing. ("Pointer arithmetic"
// means applying any arithmetic operator, such as + or ++, to a pointer variable.)
// 17. Using cout and p2 only, display the address of the first element in a.
// 18. Using cout and p2 only, display the address of the second element in a. Leave p2
// pointing to the first element of a. Don't use pointer arithmetic.
// 19. Use p1, p2, and temp to swap the values in the two elements of array 'a'.
// (first point p1 at a[0], then point p2 at a[1], then do not use "a" again. After this
// the swapping steps should look very similar to step 10. Don't use a swap function.)
// 20. Display the values of the two elements.
// (The first element should be 99, the second 0).
// 21. Write a function named 'swap' that accepts two pointers to integers as arguments, and
// then swaps the contents of the two integers. Do not use any reference parameters. Do
// not use C++'s swap() function. Place the function prototype for swap() above the main()
// function, and place the definition of swap() below main().
// 22. Invoke your swap() function with the addresses of x and y (using the address-of
// operator in the arguments), then print their values. (x should be 99, y should be 0).
// 23. Invoke your swap function with the address of the two elements in array 'a', then
// print their values. (a[0] should be 0, a[1] should be 99).
} /* end of function main() */
Your output should look exactly like this (the blanks should be replaced with the correct values):
# 5: x contains: __ # 6: x contains: __ #13: x is: __ and y is: __ #17: The address of the first element is ____________ #18: The address of the second element is ____________ #20: The first element in a[] is __ and the second element in a[] is __ #22: Now, x contains: 99 and y contains: 0 #23: Now, a[0] contains: 0 and a[1] contains: 99