c -如何设置通过参数传递给函数的int值,并将其分配给全局,以便我可以在函数外使用



如何设置通过参数传递给函数的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;
}

但是,在代码片段中,valor1valor2不是全局的。它们是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);
}

注意:不赞成使用全局变量。如果使用局部变量,效果会好得多。

相关内容

  • 没有找到相关文章

最新更新