Last updated on
*p++、*(p++)、(*p)++、*++p、++*p的区别
这几天做题就一直搞不懂*和自增自减先后顺序,做题老是翻车,所以研究一下,大佬请轻喷。。。
| int n= | 第一步 | 第二步 | 结合性以及综合的取值 |
|---|---|---|---|
| *p++ | *p | p++ | 先取p所指向的变量值,然后p存放的地址++,相当于n=*p,p++; |
| *(p++) | p++ | *p | 效果等同于*p++ |
| (*p)++ | *p | (*p)+=1 | 先取p所指向的变量值,然后p所指的变量++,相当于n=*p,(*p)++ |
| *++p | ++p | *(++p) | 先p存放的地址++,然后取p++后所指向的变量值,相当于n=*(p+1) |
| ++*p | *p | (*p)+=1 | 先取p所指向的变量值,然后p所指的变量++,相当于(*p)++;n=*p |
注意:(p)++,++p,不适用于字符串常量,同样的p++,(p++),*++p也不适用于字符数组!
就这么多吧,好累~