罕见的C用法(持续更新)

    技术2022-06-09  49

    关于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。 


    最新回复(0)