左移对指针变量有什么作用?

时间:2019-07-11 06:16:17

标签: c++ pointers bit-shift

假设我有一个unsigned character pointer 'foo',并且我已经动态使用 malloc 为它分配了内存。这些操作对指针变量有什么作用?假设调用bar的i值分别为2,4,6,8

void bar(int i, unsigned char* foo) {
    *foo++ = i>>24;
    *foo++ = i>>16;
    *foo++ = i>>8;
    *foo++ = i;
}

1 个答案:

答案 0 :(得分:3)

将位移应用于i,它不是指针,它是int类型的变量。

然后,将结果分配给指针foo指向的位置。

最后,指针增加一。

例如,此:

*foo++ = i>>24;

i向右移24,然后取该结果并将其分配给foo指向的位置。之后,指针将增加一。