본문 바로가기

분류 전체보기69

[홍정모의 따라하며 배우는 C언어] 6.11 콤마 연산자 (, Comma) 6.11 콤마 연산자 (, Comma) 콤마 연산자는 커다란 표현식에서 두 가지 기능을 같이 수행하고 싶을 때, 쓸 수 있기도 하다.다만, 이런 식으로 혼합되어서 변수를 선언하는 것은 불가능하다.  또, 위에서 쓴 것과 다르게 이번 예시는 , 라는 기호를 쓰지만 콤마 연산자는 아니다.이것은 separtors로서, Argument를 구분해주는 역할을 한다. 또한  쉼표 연산자: , | Microsoft Learn 여기서 쉼표 연산자는 순차적으로 계산하는데 쓰인다.즉, i++의 값이 증가하고 j에 i를 넣는다.i = 2 j = 2이므로 2 2가 출력된다. 그러니까 콤마가 없었으면 하나하나 초기화하고 대입하는 형식이었더라면, 콤마 연산자는 그것을 더 간편하게 한 줄로 쓸 수 있게 만든다.  #include i.. 2024. 10. 11.
[홍정모의 따라하며 배우는 C언어] 6.10 비쥬얼 스튜디오 어셈블리 코드 확인법 겉은 다르지만 속은 같을까?int main(){ i = i + 10; i += 10;}두 개는 쓰는 방법이 다르지만 똑같은 결과 값을 가진다.그러면 속은 과연 같을까? 6번 줄에 임시 중단점을 설정빨간색 점은 만드는 법은 클릭을 하면 된다.그리고 F10 눌러준다. 그 다음 코드가 적혀 있는 곳에 오른쪽 클릭 → 디스에셈블리로 이동   이렇게 겉은 달라도 속은 같다는 것을 알 수 있다.좀 더 복잡한 식에서는 어셈블리 언어가 다를 뿐만 아니라, 속도도 차이가 있다고는 한다. 그러나 컴퓨터의 발전으로 엄청난 차이가 발생하지 않는다.따라서, 그 차이를 메꾸기 보다는 알고리즘 쪽을 건드는 것이 더 좋다고 한다. 출처:  홍정모의 따라배우는 C언어강의 외의 추가된 것들은 책 그리고 인터넷 조사해서 얻었음 2024. 10. 11.
[홍정모의 따라하며 배우는 C언어] 6.8 for 루프 소개(For Loop) 6.8 for 루프 소개(For Loop)Indefinite Loop vs Counting Loop for문이나 while문은 위의 Indefinete Loop나 counting Loop를 다 구현할 수 있다.다만, 두 루프를 구현하는 데 있어서, 어느 쪽이 더 적절한지에 따라 차이가 있다.미리 말하자면 for문은 counting Loop가 표현하기 쉽고, while문은 indefinite Loop가 쉽다.Counting 루프를 만들기 위해서는 3가지 조건이 필요하다.옆에 적혀 있는 것들은 제가 제멋대로 해석한 거임.Counter initialization - 변수 초기화반복을 통제하는 제어 변수를 초기화한다. 루프가 시작될 때 한 번만 수행한다.Counter check - 조건 확인(검사)루프를 실행할.. 2024. 10. 11.
[홍정모의 따라하며 배우는 C언어] 6.7 관계 연산자의 우선순위 우선순위가 애매하다 싶으면 그냥 마음 편하게 ()을 쓰도록 하자.int main(){ int x = 1, y = 2; x > y + 2; // +가 >보다 우선순위가 높음}따라서 y에 +2를 더하고 나서, 비교 연산자가 작동한다. 만약에 x와 y를 비교를 하고 + 2를 하고 싶다. 하면int main(){ int x = 1, y = 2; (x > y) + 2;}이런 식으로 인위적으로 추가가 가능하다.그래서 (x > y)의 값은 무엇이냐?앞 강에서 배웠던 true & false 파트에 의해 참이면 1이고 거짓이면 0이다. 따라서, 거기에 +2를 더한 값이다.값은 0 + 2인 2가 나온다.관계연산자를 복잡하게 쓸 수 밖에 없는 상황이 일어나는데, 그 때에는 () 을 명확하게 쓰고, 주석을 남기도록하는 습관을.. 2024. 10. 11.