본문 바로가기

전체 글69

[홍정모의 따라하며 배우는 C언어] 6.17 for 루프를 배열과 함께 사용하기 for 루프를 배열과 함께 사용하기#define _CRT_SECURE_NO_WARNINGS#include #define SIZE 5 int main(){ int my_arr[SIZE]; for (int i = 0; i  배열을 for문을 통해 응용하면 이렇게 쓸 수 있다. #define _CRT_SECURE_NO_WARNINGS#include #define SIZE 5 int main(){ int my_arr[SIZE]; for (int i = 0; i  printf문을 for 문안에 집어 넣어도 되지 않나 ? 물론, 지금 상황에서는 되지만, 처리하는 데이터 양이 많아지면 이야기가 달라진다고 한다. 아마, 성능 저하에 관한 이야기인듯.  만약, 배열에 있는 값을 직접 추적하고 싶다면f10 누르고, 왼쪽 .. 2024. 10. 20.
[홍정모의 따라하며 배우는 C언어] 6.16 배열(Array)과 런타임(Runtime) 에러 [ ] 배열 자동 크기 조절 char my_chars[] = "Hello, World!"; 이렇게, 비워놓고 사용하며, 후에 나올 Null character의 글자 수만큼 자동으로 늘어난다.  ▶C 스타일 코딩에서는 상수, 고정되어 있는 숫자를 표현할 때 \#define을 많이 쓴다고 한다.  고정된 상수를 #define으로 사용할 때,자주 보는 형태가 배열에 사용하는 것이다. 후에 쓸 NUM_DAYS에 하나 하나 대입하지 않고, 위에 숫자만 수정하면 나머지는 자동으로 바뀌기 때문에 편리하다.  #define _CRT_SECURE_NO_WARNINGS#include #define NUM_DAYS 365int main(){ char my_chars[] = "Hello, World!"; int daily_t.. 2024. 10. 20.
[홍정모의 따라하며 배우는 C언어] 6.15 중첩된 루프들(Nested Loof) 첫 번째 문제 첫 번째 구현 1)#define _CRT_SECURE_NO_WARNINGS#include int main(){ char c = 65; for (int a = 0; a   안에 있는 i가 다시 반복될 때, c가 65의 값으로 초기화가 되지 않고, K의 값에서 올라가 보임. #define _CRT_SECURE_NO_WARNINGS#include int main(){ for (int a = 0; a  그래서 안에 있는 전체 for문을 다시 반복할 때, 처음부터 c가 65로 초기화 되겠끔, 겉 for문에 넣어줬다.  굳. 강의에서의 예시 1)#define _CRT_SECURE_NO_WARNINGS#include #define NUM_ROWS 5#define FIRST_CHAR 'A'#define.. 2024. 10. 20.
2024-10-19 D-20 나날이 가까워지는 소집해제 시간 다음 주 수요일부터 애지중지 애껴워왔던 휴가 10일을 쓰게 되면, 사실상 출근하는 날은 다음 주 수요일까지이다.이제 슬슬 복학 준비도 해야하고, 이 남은 시간 동안 놀아야할 지 아니면 공부를 해야할 지 고민중이다.사실 놀아봤자 집에서 뒹구는 것 같은데..그냥 어디 한 번 놀러다녀야하나..?지금 친구들은 중간고사 시즌이라, 11월 초에 같이 다닐 것 같은데 그때까지는 무엇을 할지.. 무튼 근무지에서 이런저런 천신만고를 겪으면서, 여러가지 후회를 하고 있긴 하다.예를 들면, 이번에 사회복무포털에서 내가 쓴 연가와 병가를 보고 있었는데, 병가가 4일 정도 남아 있었다.아마 그 중에 병가 조퇴로 쓴 것이 12일 정도? (학기 중이 아닌 방학 때, 합해서 10일 정도 쓴 듯 하다.)이런 이유는 우리 근무지는 학기.. 2024. 10. 19.
[홍정모의 따라하며 배우는 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.