보통 제어문을 배우시고, 함수로 넘어가는 경우가 많아요. 저는 C언어 배열 먼저 다루도록 하겠습니다. 함수는 조금 뒤에 배워도 크게 문제는 없습니다. 먼저 array는 같은 자료형을 여러 개 묶어놓은 자료 구조 정도로 생각하면 좋아요. 그런데, 그걸 어떻게 묶느냐가 문제입니다. 이 친구는 시작 위치를 기준으로 연속이 되게 저장이 되어 있어요. 흔히 이런 말을 들어보신 적이 있을 겁니다. array는 삽입, 삭제는 매우 오래 걸리지만, x번째에 있는 원소는 굉장히 빠르게 찾을 수 있다. 그 이유는 간단합니다. 메모리 상에 연속적으로 저장이 되기 때문입니다. 즉, 실제로 arr[2]에 접근하기 위해서, arr의 기준 위치를 알아냅니다. 그림에서는 0x80번지입니다. 그 다음에, 첨자가 2가 붙었기 때문에, ..
C언어 검색 결과
ps를 하면서, switch문은 그렇게 많이 작성하지는 않았습니다. 오히려 if, else if문을 가지고 많이 작성하거나, 배열로 많이 처리를 했는데요. 그래도 알아두면 유용한 조건문입니다. 대략적인 문법은 아래와 같습니다. 여기서 default는, 정수 변수가 정수값(1), ... , 정수값(n)이 아닐 때, 걸립니다. 이 때에는 실행(n+1)이 수행되고 switch문이 끝날 겁니다. 괄호에 정수 변수가 하나 들어갑니다. 예를 들어서 op나, cc와 같은 것들이 그러한 예입니다. 그리고, case 정수값(i)는 정수 변수의 값이 정수값(i)일 때, 걸립니다. 즉, 분기가 되는 위치 정도로 생각하시면 좋겠네요. 이것을 그림으로 쉽게 그려 드리면 다음과 같습니다. 예를 들어, op가 switch문의 정수..
C언어에서 break문이 있습니다. 이것도 상당히 많이 쓰는데요. break 문을 만나면, 현재 있는 루프, 예를 들어서 for나 while이나 do while 안에 있다면, 이러한 루프를 빠져나가는 역할을 합니다. switch 문에서도 쓸 수 있는데요. case문을 수행하고, 마지막에 break를 걸어버리면 switch문을 빠져 나올 거에요. 보통 ps에서 switch를 쓸 일은 그리 많이 없으니, switch에서 break를 거는 경우는 다음에 다루기로 하고요. 루프에서 break를 걸어버리는 경우를 생각해 보겠습니다. 예제 1을 봅시다. 이 문장이 break가 없다고 생각해 봅시다. 7번째 줄에 주석이 쳐져 있다면, 다음과 같이 흐름도가 그려질 겁니다. 그런가요? 즉, i가 0일 때부터 하나씩 증가..
C언어에서 continue문은, 반복문 블록에 있을 때, continue 밑에 있으면서, 반복문 블록에 있는 문장들은 무시합니다. 이게 대체 무슨 소리인지 잘 모르겠군요. 쉽게 말해, 루프의 끝으로 이동한다고 보시면 됩니다. 당연하게도 for나, while이나, do while 같은 반복문 내부에서만 쓰일 수 있어요. 대충 이런 식으로 for loop가 있다고 해 봅시다. for(문장1;조건1;문장2){문장3; continue; 문장 4} 보시면 문장 3 다음에 오늘 배울 키워드가 왔습니다. 그리고 밑에 문장 4가 왔는데요. 블록 안에 있는 문장은 3개입니다. 이 중, continue문을 만났을 때, 이 밑에 있는 문장 4가 무시되고, 문장 2가 수행됩니다. 즉, 조건1, 문장3, 문장2 순으로 수행이 ..
오늘은 ctime 함수에 대해서 알아봅시다. 이것은, time_t형을 우리가 알아보기 쉬운 형식인, 예를 들어서 2019-8-25 SUN 11:41:15 형식으로 바꾸는 함수입니다. 물론, 형식을 지정하는 함수도 있습니다만, 이건 다음에 배워보기로 합시다. char *ctime(time_t *tar); 사용 방식은 time_t형 tar의 주솟값을 넘겨줍니다. 그러면, 1970년 1월 1일 0:0:0 UTC+0을 기준으로 tar초만큼 경과가 되었을 건데요. 만약에 로컽 타임을 한국 시간으로 설정했다면, 1970년 1월 1일 9:0:0 UTC+9겠네요. 기준 시간이. 그로부터 경과된 시간만큼 지났을 때, 몇 년도 몇 월 몇 일이고, 몇 시 몇 분 몇 초인가를 문자열 형태로 리턴하는 함수입니다. 대략적으로 c..
최근댓글