C语言基础补充 - 4.指针与++ --符号进行运算

指针本身也是一种变量,因此也可以进行运算。但是因为指针变量本身存的是某个其他变量的地址值,因此该值进行* / %等运算是无意义的。两个指针变量相加本身也无意义,相减有意义。指针变量+1,-1是有意义的。+1就代表指针所指向的格子向后挪一格,-1代表指针所指向的格子向前挪一格。

 

*p++就相当于*(p++),p先与++结合,然后p++整体再与*结合。

*p++解析:++先跟p结合,但是因为++后置的时候,本身含义就是先运算后增加1(运算指的是p++整体与前面的*进行运算;增加1指的是p+1),所以实际上*p++符号整体对外表现的值是*p的值,运算完成后p再加1.

所以*p++等同于:*p;   p += 1;

 

*++p等同于 p += 1; *p;

 

(*p)++,使用()强制将*与p结合,只能先计算*p,然后对*p整体的值++。

 

++(*p),先*p取值,再前置++,该值+1后作为整个表达式的值。

 

总结:++符号和指针结合,总共有以上4种情况。--与++的情况很类似。

你可能感兴趣的:(C语言基础补充 - 4.指针与++ --符号进行运算)