1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
hodyreva [135]
3 years ago
10

2- (8 point) Write a program using the instructions below. Assume that integers are stored in 4 bytes. a) Define an array of typ

e int called apples with five elements, and initialize the elements to the even integers from 2 to 10. b) Define a pointer aPtr that points to a variable of type int. c) Print the elements of array values using a for statement. d) Write two separate statements that assign the starting address of the array to pointer variable aPtr. e) What physical address is aPtr pointing to? f) Print the elements of array values using pointer/offset notation. g) What address is referenced by aPtr + 3? What value is stored at that location? h) Assuming aPtr points to apples[4], what address is referenced by aPtr -= 4? What value is stored at that location?
Computers and Technology
1 answer:
lakkis [162]3 years ago
6 0

Answer:

a)  

int apples [5] = {2, 4, 6, 8, 10};

b)

int *aPtr   //this is the pointer to int

Another way to attach a pointer to a an int variable that already exists:

int * aPtr;

int var;

aPtr = &var;

c)

for (int i = 0; i < size; i++){

       cout << values[i] << endl;    }

d)  

   aPtr = values;

   aPtr = &values[0];    

both  the statements are equivalent

e)

If its referring to the part d) then the address is:

cout<<aPtr;

f)

     for (int i = 0; i < size; ++i) {

            cout<<*(vPtr + i)<<endl;    }

g)

   cout << (aPtr + 3) << endl;  // address referenced by aPtr + 3

   cout << *(aPtr + 3) << endl; // value stored at that location

This value stored at location is 8

h)

    aPtr = &apples[4];

    aPtr -= 4;

    cout<<aPtr<<endl;

    cout<<*aPtr<<endl;  

Explanation:        

a)

int apples [5] = {2, 4, 6, 8, 10};

In this statement the array names is apples, the size of the array is specified in square brackets. so the size is 5. The type of array apples is int this means it can store integer elements. The values or elements of the array apples are even integers from 2 to 10. So the elements of array are:

apples[0] = 2

apples[1] = 4

apples[2] = 6

apples[3] = 8

apples[4] = 10

b)

In this statement int *aPtr  

The int* here is used to make the pointer aPtr points to integer object. Data type the pointer is pointing to is int. The asterisk symbol used with in makes this variable aPtr a pointer.

If there already exists an int type variable i.e. var and we want the pointer to point to that variable then declare an int type pointer aPtr and aPtr = &var; assigns the address of variable var to aPtr.

int * aPtr;

int var;

aPtr = &var;

c)

The complete program is:

int size= 5;

int values[size] = {2,4,6,8,10};

for (int i = 0; i < size; i++){

       cout << values[i] << endl; }

The size of array is 5. The name of array is values. The elements of array are 2,4,6,8,10.

To print each element of the values array using array subscript notation, the variable i is initialized to 0, because array index starts at 0. The cout statement inside body of loop prints the element at 0-th index i.e. the first element of values array at first iteration. Then i is incremented by 1 each time the loop iterates, and this loop continues to execute until the value of i get greater of equal to the size i.e. 5 of values array.

The output is:

2

4

6

8

10

d)

aPtr = values;

This statement assigns the first element in values array to pointer aPtr. Here values is the address of the first element of the array.

aPtr = &values[0];    

In this statement &values[0] is the starting address of the array values to which is assigned to aPtr. Note that the values[0] is the first element of the array values.

e)

Since &values[0] is the starting address of the array values to which is assigned to aPtr. So this address is the physical address of the starting of the array. If referring to the part d) then use this statement to print physical address is aPtr pointing to

cout<<aPtr;

This is basically the starting address of the array values to which is assigned to aPtr.

The output:

0x7fff697e1810                

f)

i variable represents offset and corresponds directly to the array index.

name of the pointer i.e. vPtr references the array

So the statement (vPtr + i) means pointer vPtr that references to array values plus the offset i array index that is to be referenced. This statement gives the address of i-th element of values array. In order to get the value of the i-th element of values array, dereference operator * is used.  It returns an ith value equivalent to the address the vPtr + i is pointing to. So the output is:

2

3

6

8

10

g)

values[0] is stored at 1002500

aPtr + 3 refers to values[3],

An integer is 4 bytes long,

So the address that is referenced by aPtr + 3 is

1002500 + 3 * 4 = 1002512

values[3] is basically the element of values array at 3rd index which is the 4th element of the array so the value stored at that referred location  is 8.

h)

Given that aPtr points to apples[4], so the address stored in aPtr is

1002500 + 4 * 4 = 1002516

aPtr -= 4  is equivalent to aPtr = aPtr - 4

The above statement decrements aPtr by 4 elements of apples array, so the new value is:

1002516 - 4 * 4 = 1002500

This is the address of first element of apples array i.e 2.

Now

cout<<aPtr<<endl; statement prints the address  referenced by aPtr -= 4 which is 1002500  

cout<<*aPtr<<endl;  statement prints the value is stored at that location which is 2.

You might be interested in
PLEASE HELP Which of the following is considered a modern method of communication?
vlada-n [284]
The answer would be telegraphs
7 0
3 years ago
Read 2 more answers
Communication of a message between two processes implies which of the following? (A) Synchronization (B) Atomic operation (C) Bl
solong [7]

Answer: Synchronization

Explanation:

In communication of messages between processes we have a mechanism called as the interprocess communication (IPC) using which it is required to achieve synchronization between the process. These synchronization helps to prevent collision of the processes for the shared resources. Examples can be of mechanism of producer consumer problem .

6 0
3 years ago
How do you know if something is in the public domain
liraira [26]
You can start by looking at the date. Anything made before 1923, no matter what, will be definitely in the public domain. ... Most times, it's impossible to determine whether something is in the public domain just by the date. There are three ways you can find out definitively whether a work is in the public domain.
8 0
3 years ago
Help me pls!!! last question
monitta

Answer:

tina.left(90)

Explanation:

In code if you want your character to turn left you put "left" in your code and if you want your character to go right type "right" and so on and so on so your answer is tina.left(90)

8 0
3 years ago
What statement best describes Konrad Zuse?
vazorg [7]

Answer:

D

Explanation:

Konrad Zuse was a German civil engineer, inventor and computer pioneer. His greatest achievement was the world's first programmable computer; the functional program-controlled Turing-complete Z3 became operational in May 1941.

8 0
4 years ago
Read 2 more answers
Other questions:
  • How can we set the color of a text that acts as a link in a web page​
    10·2 answers
  • To find temporary windows files begin by typing in the search box
    6·1 answer
  • What are the advantages of repeating a header row? check all that apply
    14·1 answer
  • Which feature is an interface between the user and the file system of a computer?
    6·2 answers
  • Which of the following is not true about designing classes? In order for class information to be printed instead of a memory add
    12·1 answer
  • The radix sort
    7·1 answer
  • Click here for a answer
    15·1 answer
  • Laptop computers use PCMCIA cards, another type of ________
    15·1 answer
  • Consider the following code segment.
    5·1 answer
  • In cells D6 through D8, enter formulas to calculate the values of the stocks. The formulas should multiply the number of shares
    11·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!