我想知道为什么之前调用了i
is 0
after的值。sscanf
我期待的价值i
被修改。
我在 Windows 7 版本 3.4.4 中使用 cygwin gcc
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
unsigned char a[] = {1, 2, 3, 4, 5};
int i = 0;
printf("\nread value %d\n", sscanf(&a, "%d", &i));
printf("\nvalue is %d\n", i);
printf("\nbuffer is %s\n", a);
}
输出是
读取值为 0
值为 0
缓冲区是一些特殊字符