C语言指针加减运算符

指针加减操作:
      ++p或p++:  将地址加一(加一个存储单元),指向值后面的下一个元素
      --p或p--  :   将地址减一(减一个存储单元),指向值前面的元素
      p+i  : 地址加i个存储单元,指向值后面的第i个元素
      p-i: 地址减i个存储单元,指向值前面的第i个元素
      ++(*p)或(*p)++: 值加一,地址不变,只是对值进行修改
      *(p++)或*(++p):取出当前的值,并将值加一
      *p++:先取元素值,再将指针作+1操作
#include 

int main(int argc, const char *argv[]) 

{

    int a[] = {1,2,3,4,5};

    int *p = a;

    printf("***a[]={1,2,3,4,5}***\n");

    printf("++(*p):%d\n",++(*p));

    printf("(*p)++:%d\n",(*p)++);

    printf("a[0]:%d\n",a[0]);

    printf("*p++:%d\n",*p++);

    printf("*(p++):%d\n",*(p++));

    printf("*p:%d\n",*p);

    p = a;

    printf("*++p:%d\n",*++p);

    printf("*(++p):%d\n",*(++p));

    return 0;

}
结果:
ubuntu@farsight:~/zw/template$ ./bin/pointer
***a[]={1,2,3,4,5}***
++(*p):2
(*p)++:2
a[0]:3
*p++:3
*(p++):2
*p:3
*++p:2
*(++p):3






你可能感兴趣的:(C语言指针加减运算符)