(Write C++ Statements) For each of the following, write C++ statements that perform the specified task. Assume that unsigned integers are stored in two bytes and that the starting address of the array is at location 1002500 in memory.
a) Declare an array of type unsigned int called values with five elements, and initialize the elements to the even integers from 2 to 10. Assume that the symbolic constant SIZE has been defined as 5.
b) Declare a pointer vPtr that points to an object of type unsigned int.
c) Use a for statement to print the elements of array values using array subscript notation.
d) Write two separate statements that assign the starting address of array values to pointer variable vPtr.
e) Use a for statement to print the elements of array values using pointer/offset notation.
f) Use a for statement to print the elements of array values using pointer/offset notation with the array name as the pointer.
g) Use a for statement to print the elements of array values by subscripting the pointer to the array.
h) Refer to the fifth element of values using array subscript notation, pointer/offset notation with the array name as the pointer, pointer subscript notation and pointer/offset notation.
i) What address is referenced by vPtr + 3? What value is stored at that location?
j) Assuming that vPtr points to values[ 4 ], what address is referenced by vPtr -= 4? What value is stored at that location?
Solution:
a)
a) Declare an array of type unsigned int called values with five elements, and initialize the elements to the even integers from 2 to 10. Assume that the symbolic constant SIZE has been defined as 5.
b) Declare a pointer vPtr that points to an object of type unsigned int.
c) Use a for statement to print the elements of array values using array subscript notation.
d) Write two separate statements that assign the starting address of array values to pointer variable vPtr.
e) Use a for statement to print the elements of array values using pointer/offset notation.
f) Use a for statement to print the elements of array values using pointer/offset notation with the array name as the pointer.
g) Use a for statement to print the elements of array values by subscripting the pointer to the array.
h) Refer to the fifth element of values using array subscript notation, pointer/offset notation with the array name as the pointer, pointer subscript notation and pointer/offset notation.
i) What address is referenced by vPtr + 3? What value is stored at that location?
j) Assuming that vPtr points to values[ 4 ], what address is referenced by vPtr -= 4? What value is stored at that location?
Solution:
a)
unsigned int values[5] = {2, 4, 6, 8, 10}; const char SIZE = 5;b)
unsigned int *vPtr;c)
for(int i = 0; i < 5; i++) cout << values[i];d)
1. vPtr = values;</br> 2. vPtr = &values[0];e)
for(int i = 0; i < 5; i++) cout << *(vPtr + i);f)
for(int = 0; i < 5; i++) cout << *(values + i);g)
for(int i = 0; i < 5; i++) cout << vPtr[i];h)
values[4]; *(values + 4); vPtr[4]; *(vPtr + 4);i)
1002506; 8;j)
1002500; 2;
Post A Comment:
0 comments: