#include <stdio.h>
#define SIZE 5
int main( void )
{
int values[ SIZE] =
{ 2 , 4 , 6 , 8 , 10 } ;
int * vPtr;
printf ( "Using array subscript notation:\n " ) ;
for ( int i = 0 ; i < SIZE; ++ i)
{
}
vPtr = values;
printf ( "\n Using pointer/offset notation:\n " ) ;
for ( int i = 0 ; i < SIZE; ++ i)
{
}
printf ( "\n Using pointer/offset notation with array name:\n " ) ;
for ( int i = 0 ; i < SIZE; ++ i)
{
printf ( "%d\t " , * ( values
+ i
) ) ; }
printf ( "\n Using pointer/subscript notation:\n " ) ;
for ( int i = 0 ; i < SIZE; ++ i)
{
}
printf ( "\n Element 4 using values[4] = %d\n " , values[ 4 ] ) ;
printf ( "Element 4 using *(values + 4) = %d\n " , * ( values + 4 ) ) ;
printf ( "Element 4 using vPtr[4] = %d\n " , vPtr[ 4 ] ) ;
printf ( "Element 4 using *(vPtr + 4) = %d\n " , * ( vPtr + 4 ) ) ;
printf ( "\n Address referenced by vPtr + 3: %p\n " , ( void * ) ( vPtr + 3 ) ) ;
printf ( "Value stored at that address: %d\n " , * ( vPtr + 3 ) ) ;
vPtr = & values[ 4 ] ;
vPtr -= 4 ;
printf ( "\n Address after vPtr -= 4: %p\n " , ( void * ) vPtr) ;
printf ( "Value stored at that address: %d\n " , * vPtr) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNQoKaW50IG1haW4odm9pZCkKewogICAgaW50IHZhbHVlc1tTSVpFXSA9CiAgICB7IDIsIDQsIDYsIDgsIDEwIH07CgogICAgaW50ICp2UHRyOwoKICAgIHByaW50ZigiVXNpbmcgYXJyYXkgc3Vic2NyaXB0IG5vdGF0aW9uOlxuIik7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTSVpFOyArK2kpCiAgICB7CiAgICAgICAgcHJpbnRmKCIlZFx0IiwgdmFsdWVzW2ldKTsKICAgIH0KCiAgICBwdXRzKCIiKTsKCiAgICB2UHRyID0gdmFsdWVzOwoKICAgIHByaW50ZigiXG5Vc2luZyBwb2ludGVyL29mZnNldCBub3RhdGlvbjpcbiIpOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgU0laRTsgKytpKQogICAgewogICAgICAgIHByaW50ZigiJWRcdCIsICoodlB0ciArIGkpKTsKICAgIH0KCiAgICBwdXRzKCIiKTsKCiAgICBwcmludGYoIlxuVXNpbmcgcG9pbnRlci9vZmZzZXQgbm90YXRpb24gd2l0aCBhcnJheSBuYW1lOlxuIik7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTSVpFOyArK2kpCiAgICB7CiAgICAgICAgcHJpbnRmKCIlZFx0IiwgKih2YWx1ZXMgKyBpKSk7CiAgICB9CgogICAgcHV0cygiIik7CgogICAgcHJpbnRmKCJcblVzaW5nIHBvaW50ZXIvc3Vic2NyaXB0IG5vdGF0aW9uOlxuIik7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTSVpFOyArK2kpCiAgICB7CiAgICAgICAgcHJpbnRmKCIlZFx0IiwgdlB0cltpXSk7CiAgICB9CgogICAgcHV0cygiIik7CgogICAgcHJpbnRmKCJcbkVsZW1lbnQgNCB1c2luZyB2YWx1ZXNbNF0gPSAlZFxuIiwKICAgICAgICAgICB2YWx1ZXNbNF0pOwoKICAgIHByaW50ZigiRWxlbWVudCA0IHVzaW5nICoodmFsdWVzICsgNCkgPSAlZFxuIiwKICAgICAgICAgICAqKHZhbHVlcyArIDQpKTsKCiAgICBwcmludGYoIkVsZW1lbnQgNCB1c2luZyB2UHRyWzRdID0gJWRcbiIsCiAgICAgICAgICAgdlB0cls0XSk7CgogICAgcHJpbnRmKCJFbGVtZW50IDQgdXNpbmcgKih2UHRyICsgNCkgPSAlZFxuIiwKICAgICAgICAgICAqKHZQdHIgKyA0KSk7CgogICAgcHJpbnRmKCJcbkFkZHJlc3MgcmVmZXJlbmNlZCBieSB2UHRyICsgMzogJXBcbiIsCiAgICAgICAgICAgKHZvaWQgKikodlB0ciArIDMpKTsKCiAgICBwcmludGYoIlZhbHVlIHN0b3JlZCBhdCB0aGF0IGFkZHJlc3M6ICVkXG4iLAogICAgICAgICAgICoodlB0ciArIDMpKTsKCiAgICB2UHRyID0gJnZhbHVlc1s0XTsKCiAgICB2UHRyIC09IDQ7CgogICAgcHJpbnRmKCJcbkFkZHJlc3MgYWZ0ZXIgdlB0ciAtPSA0OiAlcFxuIiwKICAgICAgICAgICAodm9pZCAqKXZQdHIpOwoKICAgIHByaW50ZigiVmFsdWUgc3RvcmVkIGF0IHRoYXQgYWRkcmVzczogJWRcbiIsCiAgICAgICAgICAgKnZQdHIpOwoKICAgIHJldHVybiAwOwp9