我有一个无符号长数组,我希望每个数组元素(32 位)有 4 个字节,如下所示:
unsigned long giantbuffer[1024];
但是,当我打印出数组元素的地址时,我得到:
printf("%X\n", &giantbuffer[0]); --> gives ab8470
printf("%X\n", &giantbuffer[1]); --> gives ab8478
还,
sizeof(giantbuffer) gives 8192, and sizeof(giantbuffer[0]) gives 8.
也就是说每个数组元素有 8 个字节!这是依赖于系统架构的东西吗?我是 C 的新手,所以也许这是一件显而易见的事情?这对我的指针算法造成了严重破坏。我正在使用“ch”对我的语法等进行一些解释器命令行样式检查。也许这是那个程序的问题?