如何设置通过参数传递给函数的int值并将其分配给全局,以便我可以在函数外使用?
的例子:
int assignValues(int valor_assign1, valor_assign2){
valor_assign1 = 7;
valor_assign2 = 3;
}
main (){
int valor1 = 0;
int valor2 = 0;
assignValues(valor1,valor2);
printf("%d,%d",valor1, valor2);
}
输出实际上是0,0我想让它是7,3我怎么做呢?我知道这是一个简单的问题,但我一直在尝试和搜索,但我找不到这样的东西=/提前感谢。
您可以将指向整数的指针传递给函数,而不是传递值。例如:
int assignValues(int *valor_assign1, int *valor_assign2){
*valor_assign1 = 7;
*valor_assign2 = 3;
}
main (){
int valor1 = 0;
int valor2 = 0;
assignValues(&valor1, &valor2);
printf("%d,%d",valor1, valor2);
}
您可能需要阅读指针教程,但是
传递指针:
int assignValues(int *valor_assign1, int *valor_assign2){
*valor_assign1 = 7;
*valor_assign2 = 3;
}
main (){
int valor1 = 0;
int valor2 = 0;
assignValues(&valor1,&valor2);
printf("%d,%d",valor1, valor2);
}
向变量传递指针:
void assignvalues(int *v1, int *v2) {
*v1 = 7;
*v2 = 3;
}
但是,在代码片段中,valor1
和valor2
不是全局的。它们是main
本地的。如果它们是全局的,你可以给它们赋值
#include <stdio.h>
int valor1; /* global */
int valor2; /* variables */
int assignvalues(void) {
valor1 = 7;
valor2 = 3;
}
int main(void) {
printf("%d, %dn", valor1, valor2);
}
注意:不赞成使用全局变量。如果使用局部变量,效果会好得多。