- Differencing two pointers returns the number of elements in between. In this case,
the answer is 1. The actual size of the elements in the array is irrelevant. - The answer is still 1.
Exercises
1.char *char_ptr;
- The following declares a pointer to costand then assigns the address of cost
(&cost) to it:
int *p_cost;
p_cost = &cost; - Direct access:cost = 100;
Indirect access:p_cost = 100;
4.printf( “Pointer value: %d, points at value: %d”, p_cost, p_cost);
5.float *variable = &radius; - The code is as follows:
data[2] = 100;
*(data + 2) = 100; - This code also includes the answer for exercise 8:
#include <stdio.h>
#define MAX1 5
#define MAX2 8
int array1[MAX1] = { 1, 2, 3, 4, 5 };
int array2[MAX2] = { 1, 2, 3, 4, 5, 6, 7, 8 };
int total;
int sumarrays(int x1[], int len_x1, int x2[], int len_x2);
int main( void )
{
total = sumarrays(array1, MAX1, array2, MAX2);
printf(“The total is %d\n”, total);
return 0;
}
int sumarrays(int x1[], int len_x1, int x2[], int len_x2)
{
int total = 0, count = 0;
852 Appendix F
49 448201x-APP F 8/13/02 11:22 AM Page 852