fork download
  1. #include <stdio.h>
  2.  
  3. #define N 100
  4.  
  5. int main(void)
  6. {
  7. int a[N], *p;
  8. int i, sum = 0;
  9.  
  10. printf("p = %d, &a[0] = %d, &a[1] = %d and &a[99] = %d\n",
  11. p, &a[0], &a[1], &a[99]);
  12.  
  13. p = a;
  14. printf("p = %d and &a[0] = %d\n", p, &a[0]);
  15.  
  16. p = &a[0];
  17. printf("p = %d and &a[0] = %d\n", p, &a[0]);
  18.  
  19. p = a + 1;
  20. printf("p = a+1 = %d and &a[0] = %d, &a[1] = %d\n", p, &a[0], &a[1]);
  21.  
  22.  
  23. for (i = 0; i < N; ++i) /* initialize the array */
  24. a[i] = i + 1;
  25.  
  26. for (p = a; p < &a[N]; ++p) /* compute first sum */
  27. sum += *p;
  28. printf("first sum = %d\n", sum);
  29.  
  30. sum = 0;
  31. for (i = 0; i < N; ++i) /* compute second sum */
  32. sum += *(a + i); /* (a+i) is the ith offset from the base address of a */
  33. printf("second sum = %d\n", sum);
  34.  
  35. p = a;
  36. sum = 0;
  37. for (i = 0; i < N; ++i) /* compute third sum */
  38. sum += p[i]; /* p[i] is equivalent to *(p+i) */
  39. printf("third sum = %d\n", sum);
  40.  
  41.  
  42. sum = 0;
  43. for (i = 0; i < N; ++i) /* compute third sum */
  44. sum += *(p+i); /* p[i] is equivalent to *(p+i) */
  45. printf("fourth sum = %d\n", sum);
  46.  
  47.  
  48.  
  49. return 0;
  50. }
  51.  
  52.  
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
p = 0, &a[0] = -4383648, &a[1] = -4383644 and &a[99] = -4383252
p = -4383648 and &a[0] = -4383648
p = -4383648 and &a[0] = -4383648
p = a+1 = -4383644 and &a[0] = -4383648, &a[1] = -4383644
first sum = 5050
second sum = 5050
third sum = 5050
fourth sum = 5050