prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 1.20b

Q函数参数const是什么意思?这两个const

	int f(const * const p)
是什么意思?


A在两种情况中的第一种

	int f(const * const p)
对 const 的使用是完全恰当且非常有用的;许多函数声明的参数是指向 const 数据的指针,这样做可以记录(并倾向于强制执行)函数不会修改调用者中指向的数据的承诺。第二种情况const,另一方面,几乎是无用的;它只说明函数不会改变其指针的副本,即使这样做不会给调用者函数带来任何问题,调用者在任何情况下都不应该关心这一点。这种情况与函数将普通(非指针)参数声明为 const 是一样的const这表明在函数体内的任何地方
	int f2(const int x)
f2()都不会为x分配不同的值。(编译器也应该尝试强制执行这个承诺。)但是,为x分配不同的值。(编译器也应该尝试强制执行这个承诺。)但是,为分配不同的值不会影响调用者传递的值(因为 C 总是使用值传递),所以这是一个不重要的保证,事实上是一个相当无用的保证,因为函数通过承诺(对自己,因为只有它在乎)它是否会修改传入的值的副本来获得什么?


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管