有件事我不明白.也许有人能解释一下.
我知道数据处理的标准方法是将引用传递给函数,并更改函数中的数据.这样地:
#include <stdio.h>
#include <stdlib.h>
void function2( float *param) {
printf("I've received value %f\n", *param);
(*param)++;
}
int main(void) {
float variable = 111;
function2(&variable);
printf("variable %f\n", variable);
return 0;
}
使用(&;variable)调用function2时,我希望该函数可以更改数据.
但为什么这也能奏效呢?
#include <stdio.h>
#include <stdlib.h>
void function2( float ¶m) {
printf("I've received value %f\n", param);
(param)++;
}
int main(void) {
float variable = 111;
function2(variable);
printf("variable %f\n", variable);
return 0;
}
据我所知,在调用function2(variable)时,"variable"值的副本会传递给函数.但是,在函数调用之后,"variable"的值发生了变化.
在阅读这样的代码时,无论函数内部发生什么,我都不会期望"variable"的数据发生变化.