본문 바로가기
코스웨어/16년 스마트컨트롤러

20160410_김가연_스터디일지_구조체 변수의 연산+gets puts 함수 정리

by 알 수 없는 사용자 2016. 4. 10.
728x90
반응형

오늘은 어제에 이어서 구조체와 연결되는 연습문제를 풀어보았습니다.

484p 문제 23-1 [구조체 변수의 연산]

다음 구조체의 두변수를 대상으로 저장된 값을 서로 바꿔주는 함수를 정의하고 이를 호출하는 예제를 작성해보자


문제의 밑줄친 부분을 제대로 읽지 않아서 소스가 조금 길어졌습니다.



한번에 보기에도 줄일 수 있는 소스들이 있었는데 작성할때는 왜 몰랐는지 의문입니다 ㅜㅠ


답소스를 보시면


답소스를 보면 이런식으로 조금더 짧게 작성 되어 있습니다.



비교해서 보시면 차이가 납니다.


*ptr은 말 그대로 ptr을 가리키는 함수입니다. 

그것만 이해하면 제가 소스를 쓴것처럼 저렇게 복잡하게 작성할 필요가 없었지만, 

활용능력이 부족해서 생긴 문제인 것 같습니다. 분발해야겠습니다...!

더불어 메인해서 함수를 두번 호출했으니 구조체에대한 이해도 부족하군요..!

pos1->xpos = pos2->xpos; 

pos1->ypos = pos2->ypos;    = >  *ptr1 = *ptr2;


보라색이 제가 작성한 코드이고 초록색은 답소스입니다.

포인터를 쓰면 해결되는 것을

저는 x좌표 y좌표 하나하나씩 바꾸었군요.

ㅜㅠ


문제의  

"저장된 값을 서로 바꿔주는 함수를 정의"

이부분을 제대로 이해하지 못해서 생긴 문제입니다.

저는 그것을 메인함수 내에서 해결하려했죠

그로 인해서 메인함수에서 change 함수를 두번 호출하였습니다!






그래도 점점 발전해나가는 모습이 보이는 것 같습니다.

이전에 피보나치 수열 할때만해도 소스길이가 두배 넘게 차이가 나서 좌절하곤 했는데

물론 아직 멀었지만 

지금은 길이와 소스를 작성하는 요령도 어느정도 비슷해졌습니다.


앞으로 더 분발해야겠습니다!


이상입니다.



+추가

(puts , fputs) , (gets , fgets) 에 관한 개인 필기 첨부



728x90