#include <stdio.h>
void func1( int x) { //o valor do argumento é copiado para x
printf ( "endereço de x: %p\n " , ( void * ) & x
) ; //peguei o endereço de x x = 9 * x; //mudou o parâmetro e logo em seguida é descartado
printf ( "endereço de x: %p\n " , ( void * ) & x
) ; //peguei o endereço de x }
void func2( int v[ ] ) { //o valor do argumento é copiado para x, no caso é o valor do poneiro
printf ( "endereço de v: %p\n " , ( void * ) v
) ; //v já é um endereço v[ 0 ] = 9 * v[ 0 ] ; //o valor apontado para o primeiro elemento no objeto é mudado
printf ( "endereço de v: %p\n " , ( void * ) v
) ; //v já é um endereço }
int main ( ) {
int x = 111 , v[ 2 ] ; //x tem um valor direto na variável x, v tem um ponteiro para outro objeto
func1( x) ; //111 é passado para a função, só isso, nada a ver com x
printf ( "endereço de x: %p\n " , ( void * ) & x
) ; //peguei o endereço de x printf ( "x: %d\n " , x
) ; //x aqui continua sem ser alterado printf ( "endereço de x: %p\n " , ( void * ) & x
) ; //peguei o endereço de x printf ( "endereço de v: %p\n " , ( void * ) v
) ; //v já é um endereço v[ 0 ] = 111 ; //colocou um valor lá no objeto criado para ser o array
printf ( "endereço de v: %p\n " , ( void * ) v
) ; //v já é um endereço func2( v) ; //o endereço da memória onde foi colocado o objeto array é passado para a função
printf ( "endereço de v: %p\n " , ( void * ) v
) ; //v já é um endereço printf ( "v[0]: %d\n " , v
[ 0 ] ) ; //acessando um dos elementos ele foi alterado }
//https://pt.stackoverflow.com/q/472085/101
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGZ1bmMxKGludCB4KSB7IC8vbyB2YWxvciBkbyBhcmd1bWVudG8gw6kgY29waWFkbyBwYXJhIHgKICAgcHJpbnRmKCJlbmRlcmXDp28gZGUgeDogJXBcbiIsICh2b2lkICopJngpOyAvL3BlZ3VlaSBvIGVuZGVyZcOnbyBkZSB4CiAgIHggPSA5ICogeDsgLy9tdWRvdSBvIHBhcsOibWV0cm8gZSBsb2dvIGVtIHNlZ3VpZGEgw6kgZGVzY2FydGFkbwogICBwcmludGYoImVuZGVyZcOnbyBkZSB4OiAlcFxuIiwgKHZvaWQgKikmeCk7IC8vcGVndWVpIG8gZW5kZXJlw6dvIGRlIHgKfQoKdm9pZCBmdW5jMihpbnQgdltdKSB7IC8vbyB2YWxvciBkbyBhcmd1bWVudG8gw6kgY29waWFkbyBwYXJhIHgsIG5vIGNhc28gw6kgbyB2YWxvciBkbyBwb25laXJvCiAgIHByaW50ZigiZW5kZXJlw6dvIGRlIHY6ICVwXG4iLCAodm9pZCAqKXYpOyAvL3YgasOhIMOpIHVtIGVuZGVyZcOnbwogICB2WzBdID0gOSAqIHZbMF07IC8vbyB2YWxvciBhcG9udGFkbyBwYXJhIG8gcHJpbWVpcm8gZWxlbWVudG8gbm8gb2JqZXRvIMOpIG11ZGFkbwogICBwcmludGYoImVuZGVyZcOnbyBkZSB2OiAlcFxuIiwgKHZvaWQgKil2KTsgLy92IGrDoSDDqSB1bSBlbmRlcmXDp28KfQoKaW50IG1haW4gKCkgewogICBpbnQgeCA9IDExMSwgdlsyXTsgLy94IHRlbSB1bSB2YWxvciBkaXJldG8gbmEgdmFyacOhdmVsIHgsIHYgdGVtIHVtIHBvbnRlaXJvIHBhcmEgb3V0cm8gb2JqZXRvCiAgIGZ1bmMxKHgpOyAvLzExMSDDqSBwYXNzYWRvIHBhcmEgYSBmdW7Dp8Ojbywgc8OzIGlzc28sIG5hZGEgYSB2ZXIgY29tIHgKICAgcHJpbnRmKCJlbmRlcmXDp28gZGUgeDogJXBcbiIsICh2b2lkICopJngpOyAvL3BlZ3VlaSBvIGVuZGVyZcOnbyBkZSB4CiAgIHByaW50ZigieDogJWRcbiIsIHgpOyAvL3ggYXF1aSBjb250aW51YSBzZW0gc2VyIGFsdGVyYWRvCiAgIHByaW50ZigiZW5kZXJlw6dvIGRlIHg6ICVwXG4iLCAodm9pZCAqKSZ4KTsgLy9wZWd1ZWkgbyBlbmRlcmXDp28gZGUgeAogICBwcmludGYoImVuZGVyZcOnbyBkZSB2OiAlcFxuIiwgKHZvaWQgKil2KTsgLy92IGrDoSDDqSB1bSBlbmRlcmXDp28KICAgdlswXSA9IDExMTsgLy9jb2xvY291IHVtIHZhbG9yIGzDoSBubyBvYmpldG8gY3JpYWRvIHBhcmEgc2VyIG8gYXJyYXkKICAgcHJpbnRmKCJlbmRlcmXDp28gZGUgdjogJXBcbiIsICh2b2lkICopdik7IC8vdiBqw6Egw6kgdW0gZW5kZXJlw6dvCiAgIGZ1bmMyKHYpOyAvL28gZW5kZXJlw6dvIGRhIG1lbcOzcmlhIG9uZGUgZm9pIGNvbG9jYWRvIG8gb2JqZXRvIGFycmF5IMOpIHBhc3NhZG8gcGFyYSBhIGZ1bsOnw6NvCiAgIHByaW50ZigiZW5kZXJlw6dvIGRlIHY6ICVwXG4iLCAodm9pZCAqKXYpOyAvL3YgasOhIMOpIHVtIGVuZGVyZcOnbwogICBwcmludGYoInZbMF06ICVkXG4iLCB2WzBdKTsgLy9hY2Vzc2FuZG8gdW0gZG9zIGVsZW1lbnRvcyBlbGUgZm9pIGFsdGVyYWRvCn0KCi8vaHR0cHM6Ly9wdC5zdGFja292ZXJmbG93LmNvbS9xLzQ3MjA4NS8xMDE=