2015-01-26 134 views
0

我想將c代碼轉換成MATLAB,並且遇到了一些我不明白的代碼。具體而言,是如上定義的變量:它接受輸入作爲向矢量添加一個

envelope_old(&fdata[0], lpfdata, winlength, samprate, BW); 

void envelope_old (float *fdata, float *lpfdata, int nsamps, int samprate, 

浮子截止)

static float *lpfdata; 

此得到一個函數調用期間分配

在envelope_old中,lpfdata被引用爲一個向量,在格式爲「lpfdata[i] = ...「其中i是循環中的索引變量。

後來,在格式的函數調用:

downsample(lpfdata+1, dwndata, winlength, downby); 

被調用。在這種情況下,+1意味着什麼?

回答

0

處理指針時,lpfdata[n]lpfdata+n是相同的 - 它們都將n * sizeof(*lpfdata)添加到原始指針並訪問該地址的內存。

在這種情況下,lpfdata指向float類型的元素,所以sizeof(*lpfdata) == sizeof(float)