c - 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”?
解决方案
不,它传递(指向)数组第 5 个元素的地址(索引为 4,因为索引从零开始)。
你需要学习指针和数组。在 C 中,您不能在数组中添加或删除元素
推荐阅读
- docker - Docker:是否有一个只列出特权容器的“docker ps”命令?
- java - 如何为我的 LocalDate.parse 提供正确的日期时间模式?
- google-compute-engine - 如何使用自定义磁盘和外部 IP 创建谷歌计算引擎模板
- kubernetes - 如何使用 java Kubernetes 客户端实现“kubectl apply -f stuff.yaml”
- c# - 使用 Xamarin,如何将 .csv 文件上的数据存储到本地 android 存储?
- node.js - Mongoose 模型 ObjectId 引用不起作用
- r - 应用导致列表而不是数据框
- java - Java调度程序拒绝ArrayList元素
- directx - DirectX11 中有渲染模式吗?
- java - 使用 Spring Boot OAuth2 访问 Spring Security 中的日志记录