Sams Teach Yourself C in 21 Days

(singke) #1

  1. 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.

  2. The answer is still 1.


Exercises

1.char *char_ptr;


  1. The following declares a pointer to costand then assigns the address of cost
    (&cost) to it:
    int *p_cost;
    p_cost = &cost;

  2. 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;

  3. The code is as follows:
    data[2] = 100;
    *(data + 2) = 100;

  4. 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

Free download pdf