【发布时间】:2019-11-13 07:28:09
【问题描述】:
我无法理解以下代码 sn-p 的输出。
#include<stdio.h>
int main()
{
char *str;
str = "%d\n";
str++;
str++;
printf(str-2, 300);
return 0;
}
代码的输出是300。
我了解直到printf 语句之前的行,str 指向字符-%。我需要帮助的是了解为什么 printf 函数打印 300。
【问题讨论】:
-
不,在
printf语句str指向换行符之前。 -
我不确定你在做什么:
printf(str-2, 300);但是,第一个参数应该是格式字符串。第二个和后面的参数是提供给格式字符串中的输出格式说明符的值。但是,为格式字符串引用某些变量被认为存在安全风险
标签: c printf pointer-arithmetic post-increment