#include <stdio.h>
#define N 100
int main( void )
{
int a[ N] , * p;
int i, sum = 0 ;
printf ( "p = %d, &a[0] = %d, &a[1] = %d and &a[99] = %d\n " , p, & a[ 0 ] , & a[ 1 ] , & a[ 99 ] ) ;
p = a;
printf ( "p = %d and &a[0] = %d\n " , p
, & a
[ 0 ] ) ;
p = & a[ 0 ] ;
printf ( "p = %d and &a[0] = %d\n " , p
, & a
[ 0 ] ) ;
p = a + 1 ;
printf ( "p = a+1 = %d and &a[0] = %d, &a[1] = %d\n " , p
, & a
[ 0 ] , & a
[ 1 ] ) ;
for ( i = 0 ; i < N; ++ i) /* initialize the array */
a[ i] = i + 1 ;
for ( p = a; p < & a[ N] ; ++ p) /* compute first sum */
sum += * p;
printf ( "first sum = %d\n " , sum
) ;
sum = 0 ;
for ( i = 0 ; i < N; ++ i) /* compute second sum */
sum += * ( a + i) ; /* (a+i) is the ith offset from the base address of a */
printf ( "second sum = %d\n " , sum
) ;
p = a;
sum = 0 ;
for ( i = 0 ; i < N; ++ i) /* compute third sum */
sum += p[ i] ; /* p[i] is equivalent to *(p+i) */
printf ( "third sum = %d\n " , sum
) ;
sum = 0 ;
for ( i = 0 ; i < N; ++ i) /* compute third sum */
sum += * ( p+ i) ; /* p[i] is equivalent to *(p+i) */
printf ( "fourth sum = %d\n " , sum
) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lICBOICAxMDAKCmludCBtYWluKHZvaWQpCnsKICAgaW50IGFbTl0sICpwOwogICBpbnQgaSwgc3VtID0gMDsKCiAgIHByaW50ZigicCA9ICVkLCAmYVswXSA9ICVkLCAmYVsxXSA9ICVkIGFuZCAmYVs5OV0gPSAlZFxuIiwKICAgICAgICAgICBwLCAmYVswXSwgJmFbMV0sICZhWzk5XSk7CgogICBwID0gYTsKICAgcHJpbnRmKCJwID0gJWQgYW5kICZhWzBdID0gJWRcbiIsIHAsICZhWzBdKTsKCiAgIHAgPSAmYVswXTsKICAgcHJpbnRmKCJwID0gJWQgYW5kICZhWzBdID0gJWRcbiIsIHAsICZhWzBdKTsKCiAgIHAgPSBhICsgMTsKICAgcHJpbnRmKCJwID0gYSsxID0gJWQgYW5kICZhWzBdID0gJWQsICZhWzFdID0gJWRcbiIsIHAsICZhWzBdLCAmYVsxXSk7CgoKICAgZm9yIChpID0gMDsgaSA8IE47ICsraSkgIC8qIGluaXRpYWxpemUgdGhlIGFycmF5ICovCiAgICAgIGFbaV0gPSBpICsgMTsKCiAgIGZvciAocCA9IGE7IHAgPCAmYVtOXTsgKytwKSAvKiBjb21wdXRlIGZpcnN0IHN1bSAqLwogICAgICBzdW0gKz0gKnA7CiAgIHByaW50ZigiZmlyc3Qgc3VtID0gJWRcbiIsIHN1bSk7CgogICBzdW0gPSAwOwogICBmb3IgKGkgPSAwOyBpIDwgTjsgKytpKSAgLyogY29tcHV0ZSBzZWNvbmQgc3VtICovCiAgICAgIHN1bSArPSAqKGEgKyBpKTsgLyogKGEraSkgaXMgdGhlIGl0aCBvZmZzZXQgZnJvbSB0aGUgYmFzZSBhZGRyZXNzIG9mIGEgKi8KICAgcHJpbnRmKCJzZWNvbmQgc3VtID0gJWRcbiIsIHN1bSk7CgogICBwID0gYTsKICAgc3VtID0gMDsKICAgZm9yIChpID0gMDsgaSA8IE47ICsraSkgIC8qIGNvbXB1dGUgdGhpcmQgc3VtICovCiAgICAgIHN1bSArPSBwW2ldOyAgLyogcFtpXSBpcyBlcXVpdmFsZW50IHRvICoocCtpKSAqLwogICBwcmludGYoInRoaXJkIHN1bSA9ICVkXG4iLCBzdW0pOwoKCiAgICBzdW0gPSAwOwogICBmb3IgKGkgPSAwOyBpIDwgTjsgKytpKSAgLyogY29tcHV0ZSB0aGlyZCBzdW0gKi8KICAgICAgc3VtICs9ICoocCtpKTsgIC8qIHBbaV0gaXMgZXF1aXZhbGVudCB0byAqKHAraSkgKi8KICAgcHJpbnRmKCJmb3VydGggc3VtID0gJWRcbiIsIHN1bSk7CgoKCiAgIHJldHVybiAwOwp9Cgo=