C 如何设置参数传递给函数的int值并将其分配给global,以便在函数外部使用?

C 如何设置参数传递给函数的int值并将其分配给global,以便在函数外部使用?,c,function,variables,global-variables,function-pointers,C,Function,Variables,Global Variables,Function Pointers,如何设置参数传递给函数的int值并将其分配给global,以便在函数外部使用 例如: 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);

如何设置参数传递给函数的int值并将其分配给global,以便在函数外部使用

例如:

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, %d\n", valor1, valor2);
}
#包括
int valor1;/*全球的*/
int valor2;/*变数*/
int赋值(void){
valor1=7;
valor2=3;
}
内部主(空){
printf(“%d,%d\n”,valor1,valor2);
}

注意:不赞成使用globals。您使用局部变量的情况要好得多。

非常感谢,非常有用。这正是我需要的!:)是的,调用函数时我缺少的是符号,但它是正确的,非常感谢!USSR668 138:如果答案解决了你的问题,请考虑投票并将答案标记为“接受”。