为什么我们在scanf和printf函数的语法中有一个指向常量的指针?

时间:2016-02-22 11:54:47

标签: c

scanf函数的语法是  int scanf(const char * format,...); 而且printf函数的语法也是 int printf(const char * format,...);

为什么我们在这里有一个指向常量的指针,为什么我们在这里指定了变量参数,它的用途是什么?

2 个答案:

答案 0 :(得分:2)

格式说明符中的

d可以保证库永远不会更改格式字符串指向的内容。

答案 1 :(得分:1)

指向format的指针是不应该更改的函数的输入数据。因此它是常数。此外,根据功能,参数可以是输入或输出,也可以是const的性质。但是由于函数是可变参数,因此它们未被指定,并且分别没有const或非const说明符。 printf是一个out-function,因此它希望其余的参数都是in-parameters和format,因此也就是const。 scanf - 是一个函数,因此它写入format后面的其余参数,因此它们必须是可写的。