我了解指针的前提,但是我觉得它很烦人,我不明白为什么它被认为有用:
#include <stdio.h>
int main () {
int *ptr, q;
q = 50;
ptr = &q;
printf("%d", *ptr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么这是一个基本概念?
首先,传递给函数的参数只能是基元:int,char,long ....或指针。然后,如果您需要传递更复杂的元素(例如数组(字符串)或函数),则必须传递对该元素的引用。
我很快想到的第二件事是:参数总是通过“值”传递。这意味着被调用的函数仅获得变量的副本。因此,修改只会影响副本,原始变量将保持不变。如果通过带有指针的“引用”传递变量,则指针本身是不可变的,但是由于它是对原始var的引用,因此对指针元素的任何修改也会影响调用程序函数中的var。换句话说,如果您想创建一个可以更改变量的函数,则必须向其传递指向该变量的指针才能实现。