假设我有一个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;
}
答案 0 :(得分:3)
将位移应用于i
,它不是指针,它是int
类型的变量。
然后,将结果分配给指针foo
指向的位置。
最后,指针增加一。
例如,此:
*foo++ = i>>24;
将i
向右移24,然后取该结果并将其分配给foo
指向的位置。之后,指针将增加一。