#include
int main(void)
{
int num1 = 10;
int num2 = 20;
int* ptr1 = &1;
int* ptr2 = &2;
*ptr1 += 10;
*ptr2 -= 10;
*ptr1 = #2;
*ptr2 = #1;
printf("%d %d
",*ptr1,*ptr2);
return 0;
}
이렇게 하면 왜 값이 이상하게 나오나여??
해설에선
*ptr1 = #2;
*ptr2 = #1;
이부분에서 둘 다 *과 &을 제거했습니다..
문제에서 요구하는 사항은 포인터변수 ptr1과 ptr2가 가리키는 대상을 서로 바꾸는걸 요구했습니다.
그렇다면 서로 저장한 주소값을 바꿔줘야하는거 아닌가요??
받기완료
그게 무슨뜻인가요?? 처음으로 공부하는거라 용어에 익숙치 않습니다 ㅜㅜ
답변 완료 - dc Cpp
#은 &입니다
&뒤에 ptr있다는거지 - dc Cpp
&뒤에 num1,num2가 있습니다 왜 잘려서 올라오는지 모르겠네여 ㅜㅜ
복붙해서 올렸는데 띄워쓰기, 기호변경이 됏네여 잠시만여
근데 내가 이해한게 맞다면 해설도 이상한데 - dc Cpp
이해한대로 설명해주실수 있으신가여..
해설에서 ptr1=num2 했다는거아님? - dc Cpp
네 맞읍니다
가 아니네여 ㅈㅅㅈㅅ
int* 타입에 int 넣게돼있냐 씨발ㅋㅋㅋㅋ - dc Cpp
temp라고 임시로 저장할곳 설정하고 temp 거쳐서 ptr1, ptr2 교환했어요. ptr1=ptr2; 이렇게
ptr1^=ptr2;ptr2^=ptr1;ptr1^=ptr2; 하면됨 - dc Cpp
^는 어떨때 쓰는건가요?? 열혈c프로그래밍 포인터단원 막 시작했는데 아직 배우지 않은거라 ㅜㅜㅜ
exclusive or임 - dc Cpp
xor 말씀이신가요?? 질문길어져서 죄송해요 진짜 죽이고싶으실거같은데 한번만 봐주세요 오늘안에 밤새서 c마스터하고 과제해야해여.. xor은 0과 1이 달라야 1이 나오는거라 이항연산자??로 알고있는데 갑자기 왜나온건가요 지송해여 살려주세여
그냥 웃자고 한말이고 당연히 안배웠을거 아는데 뭘 죽이고싶겠음 무시하셈 - dc Cpp
걍 해설대로 하면됨ㅇㅇ - dc Cpp
네 ㅋ쿠ㅜㅜ