포인터 변수 &variable와 variable차이

조회수 399회
int main(void)
{ 

   int a[10] = { 0 };

   int var = 10;

   int* variable= &var;

   printf("결과 : &variable=%p, variable=%p, *variable=%p, var=%p\n",
                 &variable, variable, *variable,  var);

   printf("결과 : a=%p, &a=%p\n", a, &a);

}

int a[] = {0};에서 a&a의 주소값은 동일하게 a[0]의 주소값으로 같았습니다. 그래서 포인터 변수도 변수명이 자신을 가리킨다고 생각했는데 &variablevariable값이 다른 이유를 모르겠습니다.

1 답변

  • int main(void)
    { 
        int a[10] = { 0 };
        int var = 10; 
        int* variable= &var;
        printf("variable %x\n", &variable);
        printf("variable %x\n", variable);
        printf("variable %d\n", *variable);
    
        printf("var %x\n", &var);
        printf("var %d\n", var);
    }
    
    //결과
    variable c75854a0 //variable 의 주소 값
    variable c75854ac //variable 에 저장된 값
    variable 10 //저장된값(주소)에 저장된 내용
    var c75854ac //var의 주소 값
    var 10 //var에 저장된 값
    

    variable(0xc75854a0) 에는 var 의 주소(0xc75854ac)가 저장됩니다.

    그러므로 &variable(variable 의 주소값 0xc75854a0) 과 variable 안에 입력되있는 값(0xc75854ac)은 다릅니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)