我正在尝试将c代码翻译成MATLAB,我遇到了一些我不理解的代码。具体来说,有一个变量定义为:
static float *lpfdata;
在函数调用期间将其分配给:
envelope_old(&fdata[0], lpfdata, winlength, samprate, BW);
接受输入为:
void envelope_old (float *fdata, float *lpfdata, int nsamps, int samprate,
浮动截止)
在envelope_old中,lpfdata被引用为向量,在循环中以“lpfdata[i] = ...
”格式分配值,其中i是循环中的索引变量。
稍后,函数调用格式为:
downsample( lpfdata+1, dwndata, winlength, downby);
被调用。在这种情况下+1意味着什么?
答案 0 :(得分:0)
当处理指针时,lpfdata[n]
和lpfdata+n
是相同的 - 它们都将n * sizeof(*lpfdata)
添加到原始指针并访问该地址的内存。
在这种情况下,lpfdata
指向float
类型的元素,因此sizeof(*lpfdata) == sizeof(float)