首页 > 解决方案 > C 向数组添加值?`数组+值`

问题描述

我正在查看一些代码,我偶然发现了这行代码。(用其他代码行提供上下文)

void write32le(int in, unsigned char * buf) {
    buf[0]=in&0xff;
    buf[1]=(in>>8)&0xff;
    buf[2]=(in>>16)&0xff;
    buf[3]=(in>>24)&0xff;
}

…………

unsigned char wavhead[44] = {
    0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00,  0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
    0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x02, 0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61,  0x00, 0x00, 0x00, 0x00
    };

…………

write32le(outsizetotal,wavhead+4);

如果这有所不同,最后两行代码在同一个函数中,我的问题在最后一行。“wavhead+4”,它到底在做什么?将数字 4 附加到“wavhead”?

标签: carrays

解决方案


不,它传递(指向)数组第 5 个元素的地址(索引为 4,因为索引从零开始)。

你需要学习指针和数组。在 C 中,您不能在数组中添加或删除元素


推荐阅读