关于C指针和数组的罕见用法
#include "stdafx.h"
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
float dd[4]={1.2, 2.41,3.1, 56.2};
float dp[4]={3.4, 9.22,8.6, 34.1};
const float* sdata =dd+1;
float* dr=dp+2;
*dr = sdata[-1];
getchar();
return 0;
}
sdata[-1]这个用法少见。程序的意思是:sdata指向dd的第二个,dr指向dp的第三个,sdata[-1]就是1.2 ,把1.2赋给dp的第三个。
sdata[-1]等价于*(sdata-1).
关于sscanf和scanf的罕见用法
sscanf( ptr, "%f%n", el_ptr + i, &n );
sscanf 输入数据从流中获取,scanf输入数据从键盘中获取。
这个%n很奇怪。n中(&n的n)中记录的是输入的长度。例如,输入124,n=3;输入32,n=2。