내 목적: 변수의 메모리 주소를 찍는 것
언어 : c
// %p맞냐? 기억이안나노 쨌든 주소값찍는다
void print(int *ptr){
printf("%p/n", ptr);
}
int main(){
int a;
print(&a);
}
이 코드는
내가 ptr로 레퍼런싱한게 아니니까
콜바이 밸유라보는거고
void(int *ptr){
*ptr++;
}
int main(){
int a = 3;
add(&a);
}
이코드는 레퍼런싱했으니까
콜바이 레퍼런스라 봐야되는게 맞음 그럼?
똑같은 포인턴데 내 의도에따라
콜바이 밸류냐 레퍼런스냐 달라지는거임?
- dc official App
둘다 레퍼런스. 그냥 포인터 변수나 주소값 넘기면 call by reference로 봄. 안에서 뭘 어떻게 사용하는지랑 다르게 ..
첫번째는 결국 내가 포인터 주소를 의미있는 값으로 사용하겠다는거잖아 그래도 콜바이레퍼런스야? 참나 어이가없네 - dc App
뭐가 어이가없어.. 포인터 주소가 파라미터로 넘어온 순간 레퍼런스라고 생각해 그리고 그냥 생각 안하는게 나음. 말장난일 뿐
말장난이면 말이 되게 쳐야지 포인터 주소의 값이 디버깅 프로그램에서 필요해서 그걸 의미있는 값으로 쓰면 그걸 왜 콜바이 레퍼런스라고 불러야하는데 나는 그걸 의미있는 값으로쓰는건에 - dc App
라고 불평해봤자 누가 알아주겠냐... 나처럼 이거에 오래 붙들고 늘어지는새끼는 세상에없을거다 - dc App
애초에 너가 생각하는 그런식으로 엄격하게 다뤄지는 개념이 아냐ㅋㅋㅋ 너무 이상하게 깊게 들어가지 마셈
그냥.. 뭔가 누가 어 왜 변수값이 내가의도하는대로 안바뀌지? 라는 답변이 그렇게쓰면 콜바이 밸유로 한거라 문제고 콜바이 레퍼런스로 해야 변수값이 바뀌어~~ 밸유는 그냥 값을 복사하는거라 그래~~ 라는 말이 짜증났어 - dc App
병신
call by reference라는게 명확하게 정해진 말이 아니고;; 그냥 책한권에서 나와서 널리널리 쓰이는 표현중 하나인건데 이걸 왜 정의해서 명확하게 하려고 하냐고. 답이 없는문제를 ㅡㅡ;;
세상에서 제일 맛있는 음식이 뭐야? 그건 아마 삼겹살일거야. 라고 누가 말하면 그게 정답이고 개념이야? 그냥 그런갑다 하고 넘어가면 되는거임..
파고드는건 좋은데 정확한 답이 없는 서술, 논술형문제같은걸 답 내려고 하지 마셈
주소를 복사하는건 value, 참조(포인터)를 복사하는건 reference