Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Perceber output de programa

$
0
0
Sim, eu acho que percebi os resultados. Só não tenho a certeza é dos pontos que o @HappyHippyHippo tem entre cada número/algarismo! Se ele colocou os pontos apenas para separar cada resultado, então acho que percebi. Como exemplo: int f1(int *i){ printf("%d",*i); *i=*i+1; *i=*i%2; return *i; } ... i=f1(&i); printf("%d",i); É enviado o endereço de memória da variável 'i' para dentro da função. Dentro da função é imprimido o valor apontado por aquele endereço de memória, ou seja, o 14. Depois o valor apontado por aquele endereço de memória é incrementado em 1 valor e como tal o valor apontado por aquele endereço de memória fica igual a 15. Na penúltima linha, esse mesmo valor é dividido por 2 e o resto dessa divisão é guardado nessa variável 'i', portanto 15 % 2 = 1. E é este último valor que é devolvido pela função e que é imprimido a partir da função main. Daqui aparece o 14 e o primeiro 1 do resultado apresentado pelo OP. Ora, para mim isto não faz muito sentido. Andar a fazer passagem de parâmetros por referência de uma variável que é golbal, é um pouco redundante. Mas como o objectivo não é apenas a passagem de parâmetros, então talvez se justifique o código!

Viewing all articles
Browse latest Browse all 11336

Trending Articles