Vin*_*tch 5 c++ memory pointers
所以,我通过http://cplusplus.com/doc/tutorial/pointers/了解指针,我对指针运算部分一无所知.有人可以清理一下或指向我这方面的教程,我可能会更好地理解.
我与喜欢之间的区别所有的括号的东西特别迷茫*p++,(*p)++,*(p++),等.
*p++
对于这个,++具有更高的优先级,*因此它会将指针递增 1,但会检索原始位置的值,因为后递增返回指针,然后递增其值。
(*p)++
这会强制另一个方向的优先级,因此首先取消引用指针,然后将该位置处的值加一(但返回原始指针位置处的值)。
*(p++)
这一个首先递增指针,因此它的作用与第一个相同。
需要注意的重要一点是,指针递增的量受指针类型的影响。从您提供的链接:
char *mychar;
short *myshort;
long *mylong;
Run Code Online (Sandbox Code Playgroud)
char长度为一个字节,因此++指针加 1(因为指针指向每个字节的开头)。
short长度为两个字节,因此将++指针增加 2,以便指向下一个短字节的开头而不是下一个字节的开头。
long长度为 4 个字节,因此++指针增加 4。
| 归档时间: |
|
| 查看次数: |
969 次 |
| 最近记录: |