*은역참조아닌가요.. 함수안에서 죄다 *을붙여놔서 이해를못하겟더라구요 *을빼버리면 함수끝나고 데이터다사라지고
포인터 선언할때 int *p같은식으로 하죠? int p라고 하면 포인터라고 알려줄 수 없으니까 - dc App
많이들 헷갈려하는데 선언이나 매개변수에서의 *는 포인터라는걸 알려주기 위함이고 그 외에선 역참조 연산자로 해석하시믄 됩니덩 - dc App
네 저도 그건 알겠는데 매개변수가 포인터인 함수 가령 x(int *y)가 잇다햇을때 함수 몸체부분의 y가 죄다 역참조가 되잇더라구요 그부분이 이해가가질않아서요 역참조를 안하고 y=h이런식으로하면 함수빠져나왓을때 값도변경되어잇지않고...
아 이때 h는 x함수안의 지역변수인 포인터에요
왜냐면 결국 y도 매개변수로 준거고 call by address라고, 우리가 관심있는건 y가 아니라 y의 내용물이에요. 매개변수로 준건 기본적으로 변경할 수 없음 - dc App
가령 y를 집주소, *y를 집에 사는 사람이라고 한다면, 집주소를 매개변수로 줬을 때 그 집 주소를 변경해봐야 호출한 곳에서 y, 집주소가 바뀌진 않음. 대신 *y, 집에 살고있는 사람을 변경하는건 가능하다는거 - dc App
만약 int a = 5;인 상태에서 int *p = &a;, 여기서 a의 주소값은 0x00이라고 합시다. 그러면 매개변수로 0x00을 전달할테고 이 값은 바꿀 수 없음. 하지만 0x00에 접근해서 5라는 값을 변경은 가능하지요 - dc App
int *형 변수인 y를 변경하고싶다면 y의 주소값 즉 int **py같은걸 전달해줘야돼용 - dc App
완벽하게는아니지만 어느정도이해가된거같아요 친절한 답변감사합니다
그림으로 그려드림? - dc App
덕분에 이해했습니다 정말 감사합니다!!
이 댓글은 게시물 작성자가 삭제하였습니다.
*은역참조아닌가요.. 함수안에서 죄다 *을붙여놔서 이해를못하겟더라구요 *을빼버리면 함수끝나고 데이터다사라지고
포인터 선언할때 int *p같은식으로 하죠? int p라고 하면 포인터라고 알려줄 수 없으니까 - dc App
많이들 헷갈려하는데 선언이나 매개변수에서의 *는 포인터라는걸 알려주기 위함이고 그 외에선 역참조 연산자로 해석하시믄 됩니덩 - dc App
네 저도 그건 알겠는데 매개변수가 포인터인 함수 가령 x(int *y)가 잇다햇을때 함수 몸체부분의 y가 죄다 역참조가 되잇더라구요 그부분이 이해가가질않아서요 역참조를 안하고 y=h이런식으로하면 함수빠져나왓을때 값도변경되어잇지않고...
아 이때 h는 x함수안의 지역변수인 포인터에요
왜냐면 결국 y도 매개변수로 준거고 call by address라고, 우리가 관심있는건 y가 아니라 y의 내용물이에요. 매개변수로 준건 기본적으로 변경할 수 없음 - dc App
가령 y를 집주소, *y를 집에 사는 사람이라고 한다면, 집주소를 매개변수로 줬을 때 그 집 주소를 변경해봐야 호출한 곳에서 y, 집주소가 바뀌진 않음. 대신 *y, 집에 살고있는 사람을 변경하는건 가능하다는거 - dc App
만약 int a = 5;인 상태에서 int *p = &a;, 여기서 a의 주소값은 0x00이라고 합시다. 그러면 매개변수로 0x00을 전달할테고 이 값은 바꿀 수 없음. 하지만 0x00에 접근해서 5라는 값을 변경은 가능하지요 - dc App
int *형 변수인 y를 변경하고싶다면 y의 주소값 즉 int **py같은걸 전달해줘야돼용 - dc App
완벽하게는아니지만 어느정도이해가된거같아요 친절한 답변감사합니다
그림으로 그려드림? - dc App
덕분에 이해했습니다 정말 감사합니다!!
이 댓글은 게시물 작성자가 삭제하였습니다.