Firstly, I'm new to C, so please bear with me.

I'm trying to increment a pointer, the following code works correctly with the
following output:

before number = [0], address = [0xbfec32b0}
after number = [1], address = [0xbfec32b4}

Code:
#include <stdio.h>

int main(void) {

    int number[2] = { 0,1 };
    int *p_number = NULL;

    p_number = &number[0];

    printf("before number = [%d], address = [%p}\n",*p_number,p_number);

    p_number++;

    printf("after number = [%d], address = [%p}\n",*p_number,p_number);

    return 0;

}
However, when I try to perform the same task using a function, I get the following output:

before number = [0], address = [0xbff372a0}
after number = [0], address = [0xbff372a0}

Code:
#include <stdio.h>

void increment(int *p_address);

int main(void) {

    int number[2] = { 0,1 };
    int *p_number = NULL;

    p_number = &number[0];

    printf("before number = [%d], address = [%p}\n",*p_number,p_number);

    increment(p_number);

    printf("after number = [%d], address = [%p}\n",*p_number,p_number);

    return 0;

}


void increment(int *p_address) {

     p_address++;

}
Any advice with this would be most welcome, I'm positive that I'm doing something wrong.

Thanks
~P