【发布时间】:2012-12-13 19:40:50
【问题描述】:
正如我们所知,c 语言中的 char 指针逐字节遍历内存,即每次 1 个字节, 和整数指针每次 4 字节(在 gcc 编译器中),每次 2 字节(在 TC 编译器中)。
例如:
char *cptr; // if this points to 0x100
cptr++; // now it points to 0x101
int *iptr; // if this points to 0x100
iptr++; // now it points to 0x104
我的问题是:
如何在c中创建一个位指针逐位递增遍历内存?
【问题讨论】:
-
您必须使用 C++ 来封装实现并抽象解引用运算符。你可以在 C 中做同样的事情,但你必须使用函数来模拟运算符。
-
拥有一个指向位的指针没有任何意义,因为几乎每个(所有?)CPU 都在字节级别上工作。我听说过的每个 CPU 的地址总线都以字节表示地址。由于指针是一个地址,它必须指向一个字节,或者更大。