【发布时间】:2012-06-13 12:42:37
【问题描述】:
我想知道为什么i 的值在sscanf 之前被调用之后是0。我期待 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
缓冲区是一些特殊字符
【问题讨论】: