views:

74

answers:

2

Some examples of adding and subtracting similarly typed pointers, using numeric and character pointers please. Using C.

Thanks.

+1  A: 

You can check this to know about pointer arithmetic

viky
+1  A: 

Here's a practical example which extracts a single character from a C string:

char charAt( char *str, size_t idx) {
    if (idx > strlen (str))
        return '\0';
    return *(str+idx);
}

Or another, which swaps an integer in an array with the one immediately before it (with no range checking):

void swapInts( int *base, size_t idx) {
    tmp = *(base+idx);
    *(base+idx) = *(base+idx-1);
    *(base+idx-1) = tmp;
}

In both these cases, *(pointer+offset) is identical to pointer[offfset] but using pointer arithmetic instead of array offsets:

*(str+idx)        ->     str[idx]
*(base+idx)       ->     base[idx]
*(base+idx-1]     ->     base[idx-1]

Warning: Don't use these verbatim in your homework, have a think about them then write your own. If you copy them verbatim, you will almost certainly be failed since your educators no doubt watch these sites as well.

paxdiablo