C examples for Pointer:Array Pointer
Calculations using pointers instead of subscripts for two dimensional array.
#include <stdio.h> #define MONTHS 12 // number of months in a year #define YEARS 5 // number of years of data int main(void){ // initializing rainfall data for 2010 - 2014 const float rain[YEARS][MONTHS] = { {1.3,2.3,4.3,3.5,2.4,1.2,3.2,7.2,7.4,2.4,3.5,6.6}, {8.5,8.3,4.2,1.6,2.4,3.3,5.2,6.9,8.3,2.9,1.4,7.3}, {9.1,8.5,6.5,4.3,2.1,4.8,0.2,5.2,1.1,2.3,6.1,8.4}, {7.2,9.9,8.4,6.3,1.2,4.8,0.4,4.1,8.6,1.7,4.3,6.2}, {8.5,8.3,4.2,1.6,2.4,3.3,5.2,6.9,8.3,2.9,1.4,7.3} };// w w w.jav a2 s.co m float subtot, total; const float (*year_ptr)[MONTHS]; const float *month_ptr; for (year_ptr = rain, total = 0; year_ptr < rain + YEARS; year_ptr++) { for (month_ptr = *year_ptr, subtot = 0; month_ptr < *year_ptr + MONTHS; month_ptr++) subtot += *month_ptr; printf("%5d %15.1f\n", (int) (2010 + (year_ptr - rain)), subtot); total += subtot; // total for all years } } printf("\nThe yearly average is %.1f inches.\n\n", total/YEARS); printf(" Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\n"); int month, year; for (month = 0; month < MONTHS; month++){ // for each month, sum rainfall over years for (year = 0, subtot = 0; year < YEARS; year++) subtot += *(*(rain + year) + month); printf("%4.1f", subtot/YEARS); } printf("\n"); return 0; }