如何用c语言创建一个指针

ash*_*bal 3 c byte pointers bits

正如我们所知,在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
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如何在c中创建位指针,逐位递增遍历存储器?

jke*_*ian 7

char是C中的"最小可寻址单元".您不能直接指向小于此的东西(例如一点点).


小智 5

你不能.使用指针,不可能直接操作位.(你真的期望可怜的假设bit *p = 1; p++返回1.125吗?)

但是,你可以使用位运算符,如<<,>>,|&一个字节中访问一个特定位.