# Addition and Subtraction operation in Data Structures through C Language

February 01, 2015 0 Comments

Addition and Subtraction operation:

After assigning some value (address) to the pointer, such pointer can be used in arithmetic operation only involving addition and subtraction. Be cautious, the addition and subtraction. After assignment whenever a number is added to pointer then a normal addition. The concept will be clear when you see an example.
Consider the following declaration: int A[10], *p: ‘A’ is an array of size 10 of the type integer. ‘p’ is a pointer variable also of the type integer. Name of the array ‘A’ give the base address of array. Now, p=A;    pointer variable p is assigned with base address of array
A[0]    first element of the array
P[0]    also gives first element of array
A[3]    fourth element of the array
P[3]     also gives fourth element of the array

The following looping statement will print the array elements through pointer variable:
for(I=0;I<10;I++)
Printf(“%d”,*(p+I));
The above loop is similar to the following normal looping statements to print the array:
for(I=0;I<10;I++)
Printf(“%d”,A[I]);
OR
for(I=0;I<10;I++)
Printf(“%d”,p[I]);

The subtraction operation is similar to the addition operation. If a number is subtracted from the pointer, then the result obtained gives the address of the previous element. Again the result depends on the size of the element. The following loop prints the array in reverse order with the help of pointer subtraction;
p=&A[9];   /*last element’s address is stored in ‘p’*/
for(I=0;I<10;I++)
printf(“%d”,*(p-I));

The array can be printed in reverse order using the following normal looping statements:
For(I=9;I>=0;I--)                              OR                  for(I=9;I>0;I--)
Printf(“%p”,A[I]);                                                       printf(“%d”,p[I]);

In the similar way the value stored in a pointer changes by:
1 if the element is of the type ‘char’
4 if the element is of the type of ‘float’ or ‘long integer’
8 if the element is of the type ‘double’
During pointer arithmetic involving ‘addition’ and ‘subtraction’. In addition operation the pointer points to the next element’s address where as in subtraction the pointer points to the previous element’s address.

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard. Google