【发布时间】:2015-03-17 15:25:38
【问题描述】:
我刚刚通过查看标准遇到了这个:
7.19.6.1 fprintf 函数
在
8 转换说明符及其含义为:
关于:
n 参数应该是一个指向有符号整数的指针,其中写入了 到目前为止,此调用写入输出流的字符数 fprintf。没有参数被转换,但有一个被消耗。如果转换 规范包括任何标志、字段宽度或精度,行为是 未定义。
这是什么意思? %n 是做什么的?
我说对了吗,根据:
返回
14 fprintf函数返回传输的字符数
在这个sn-p中:
int a, b;
b = printf ("Thi%n\s is just a test",&a);
a 等于 b?
【问题讨论】:
-
当你尝试它时会发生什么?是
a == b? -
a将是3,因为到目前为止已经写入了 3 个字符 (Thi)。b的值与%n无关。 -
不在我可以测试的机器上,只需带上我打印的 c99 来对抗无聊;p
-
在您的示例中,
n将等于 3。