问题一:为什么需要指针作为函数参数?
回答:C语言中,用值进行函数的参数传递时,在函数中,用作实际参数的变量无法被函数改变。因此使用指向变量的指针作为参数,允许函数既可以读取变量,也可以修改变量。具体参考这篇文章《scanf 中 & 的应用本质》。
问题二:const
的作用?
回答:当调用函数并且把指向变量的指针作为参数传入时,通常会假设函数将修改变量(否则,为什么函数需要指针呢?)。如以下程序:
f(&x);
可以使用const
来表明函数不会改变指针参数所指向的对象。const
应放置在形式参数的声明中,后面紧跟着形式参数的类型说明:
void f(const int *p) {
*p = 0 ; // 会报错
}
这一用法表明p
是指向“常整数”的指针。试图改变*p
时,编译器会报错。