Как установить значение int, передаваемое параметром в функцию и назначить его глобальным, чтобы я мог использовать вне функции? - PullRequest
3 голосов
/ 10 июля 2011

как установить значение типа 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 Как мне это сделать?Я знаю, это простой вопрос, но я пытался и искал, но я не могу найти ничего подобного = / Заранее спасибо.

Ответы [ 3 ]

6 голосов
/ 10 июля 2011

Вы можете передать указатель на ваши целые числа в функцию вместо передачи значений. E.g.:

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);
}

Возможно, вы захотите прочитать руководство по указателю , однако.

1 голос
/ 10 июля 2011

Передайте указатели:

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);
}
0 голосов
/ 10 июля 2011

Вы передаете указатели на переменные:

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);
}

Примечание: использование глобалов осуждается.Ваше использование с локальными переменными намного лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...