2016/07

C언어 강의

(C언어 강의) Chapter -12 반복명령을 위한 키워드(while)

드디어 반복문에 대해 배울 차례입니다. C언어에서 제공하는 반복문 키워드는 3가지가 있는데 그 세 가지는 다 비슷하기 때문에 while하나만 잘 이해해도다른 반복문은 금방 이해가 되실겁니다. 반복문이란 무엇일까요?자 예를 들어 "Hello World!"라는 문자열을 총 열 번 출력하고 싶다면 어떻게 해야 할까요?printf함수를 10번 호출하면 됩니다. 하지만 이 방법은 매우 비효율적입니다. 그래서 이런 반복적인 일을 수행해주는 것이 바로 '반복문'입니다. while문의 기본적인 사용법은 다음과 같습니다. 저 반복조건에 무엇이 들어가야 할지 보겠습니다. "반복 조건이 참이냐 거짓이냐?" 예제를 보면서 생각해봅시다. 실행결과 위 코드에서 10번째 줄을 지워봅시다.어떻게 되나요?프로그램이 종료되지 않고 계속..

C언어 강의

(C언어 강의) Chapter -11 printf와 scanf함수에 대한 추가적인 이야기

이번 강의는 그냥 참고만 하셔도 되는 강의입니다.그래도 한 번 보고 소스도 작성해보시길 바랍니다. printf함수는 문자열을 출력하는 함수입니다.C언어는 큰 따옴표를 사용해서 문자열을 표현합니다. 따라서 큰 따옴표안에 묶인 문자열을 전달하여 printf함수를 호출하면, 전달된 문자열을 모니터상에 출력이 됩니다. #include int main(void) { printf("Hello? \n"); printf("My name is JaeHoon \n"); printf("Nice to meet you! \n"); return 0; } 위 코드에서 \n문자가 삽입되었는데 전에 배웠었죠? 얘를 특수문자라고 한다는 것을요.말 그대로 일반 문자의 의미가 아닌 특수한 의미를 담고있는 문자입니다. 특수문자는 작은 따옴표..

C언어 강의

(C언어 강의) Chapter -10 상수와 형 변환 -02

저번 강의를 이어서 이번에는 '형 변환'에 대해 배워보겠습니다.char형이나 int형으로 선언된 변수를 double형으로 바꿀수는 없을까요? 가능합니다.그리고 이것이 자료형의 변환입니다. 자료형 변환은 다음과 같이 크게 두 종류로 나뉩니다. -자동 형 변환(묵시적 형 변환)-강제 형 변환(명시적 형 변환) 말 그대로 자동 형 변환은 자동으로 형 변환이 이루어 지는 것이고, 강제 형 변환은 강제로 형 변환이 이루어 지는 것을 말합니다. 자동 형 변환은 대입연산에 의해 발생하는 형 변환과, 정수의 승격에 의한 형 변환, 마지막으로 피연산자의 자료형 불일치로 인한 형 변환이 있습니다. 먼저 대입연산에 의해 발생하는 형 변환부터 봅시다. 대입 연산자는 왼쪽과 오른쪽에 존재하는 두 피연산자의 자료형이 일치하지 않..

C언어 강의

(C언어 강의) Chapter -10 상수와 형 변환 -01

정말 오랜만 입니다.일주일만 쉬기로 했는데 시험이 끝나고 정보올림피아드를 준비하느라 한 주 더 미뤄지게 됬습니다. 오늘은 상수와 형 변환에 대해 알아볼 겁니다.상수, 수학시간에 많이 들어보셨죠?크게 변수와 상수의 차이점을 보면 변수는 값의 변경이 가능한 녀석(?)이고 상수는 값의 변경이 불가능한 녀석입니다.상수역시 앞서 배운 int나 double같은 자료형에 의해 표현됩니다. 상수는 크게 이름을 지니지 않는 리터럴(Literal) 상수와 이름을 지니는 심볼릭(Symbolic) 상수로 나뉩니다.먼저 리터럴 상수먼저 봅시다. 리터럴 상수는 이름이 없는 상수라고 했습니다. 이름이 없다는게 대체 무슨 소리일까요??다음 코드를 봅시다. int main(void) { int num = 10 + 20; . . . ...

C언어 강의

(C언어 강의) Chapter -09 여러가지 자료형

자료형이 무엇일까요? 자료형은 데이터를 표현하는 기준으로 변수 선언시 사용됩니다. 변수는 데이터 저장을 위해 할당된 메모리 공간에 붙여진 이름이라고 설명한 적이있습니다.그럼 그 메모리 공간은 어떻게 할당할까요? 자료형은 다음 기준에 따라 선택하시면 됩니다. -정수를 저장할 것인가, 실수를 저장할 것인가?-데이터를 저장하기 위해서 몇 바이트의 메모리를 사용할 것인가? 당연히 바이트의 크기가 커질 수록 표현할 수 있는 데이터의 크기도 증가합니다.위 기준에서 정수를 선택하고 4바이트를 사용한다면 그 때 사용하는 자료형이 바로 int입니다. int num; //4바이트 크기의 정수형 변수 num선언이걸 간단히 int형 변수 num이라고 부를 수 있습니다. C언어에는 여러 가지 자료형이 있습니다. 아래 표는 각 ..

C언어 강의

(C언어 강의) Chapter -08 비트 연산자

Chapter 05에서 연산자에 대해 알아보았는데 오늘은 거기서 다루지 못한 연산자 중 '비트 연산자'에 대해 알아보겠습니다. 비트 연산은 주로 하드웨어 프로그래밍에 활용되지만 그 외 영역에서도 사용됩니다. 메모리 사용 효율성이 높고, 연산의 수도 줄일 수 있다는 장점이 있습니다. 비트 연산의 활용에 대한 얘기는 여기까지 하고 기능에 대해 살펴보겠습니다. & 비트단위로 AND 연산 num1 & num2; | 비트단위로 OR 연산 num1 | num2; ^ 비트단위로 XOR 연산 num1 ^ num2; ~ (단항 연산자) 피연산자의 모든 비트 반전 ~num; >2; //num은 변화 없음, 두 칸 오른쪽 이동 결과만 반환 이제 이 연산자들을 하나 씩 설명 해 보겠습니다. & (AND) 연산자 & 연산자는 ..

C언어 강의

(C언어 강의) Chapter -07 컴퓨터의 데이터 표현방식

컴퓨터는 2진수를 사용하여 데이터를 표현하고 연산합니다. 따라서 우리는 먼저 2진수에 대한 이해가 필요합니다. 2진수란 무엇일까요? 2진수란 2개의 숫자만을 사용해서 데이터를 표현하는 방식인데요, 이와 유사하게 10개의 숫자를 사용하여 데이터를 표현하는 10진수도 있고요, 16개를 사용하는 16진수도 있습니다. 우리가 흔히 사용하는 10진수는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9로 되어있죠. 보시다시피 16진수는 숫자기호가 10개 밖에 되지않아 문자까지 사용되었습니다. 그래서 A는 10 B는 11 F는 15입니다. 참고로 16진수는 대소문자를 구분하지 않습니다. 2진수를 처음 접하게 되면 익숙하지 않아서 어려워 보이실테지만 그리 어렵진 않습니다. 각 자리수에서 의미하는 것은 2의 거듭제곱입..

C언어 강의

(C언어 강의) Chapter -06 데이터입력과 C언어 키워드

지금까지 배웠던 것들은 그냥 프로그램 화면에 글자만 출력하는거였죠? 오늘은 직접 키보드로 데이터를 입력 받는 방법을 배울 겁니다. 데이터를 입력받을 때 쓰는 함수는 'scanf'라는 함수입니다. scanf함수의 사용법은 printf함수와 매우 비슷합니다. 아래는 기본적인 사용법입니다. int main(void) { int num; scanf("%d", &num); ... } "scanf("%d", &num);" 이 문장은 키보드로부터 입력받은 정수를 변수 num에 저장하라는 뜻입니다. Chapter 04에서 printf함수의 %d는 10진수 정수를 출력한다는 의미라고 했습니다. 그럼 scanf에서는 무슨의미 일까요? 그렇죠 반대로 10진수 정수를 입력한다 라는 의미입니다. 그런데 여기서는 변수앞에 '&'..

C언어 강의

(C언어 강의) Chapter -05 변수와 연산자 - 2

이어서 강의 진행하겠습니다. 이번엔 '관게 연산자'에 대해 알아봅시다. 관계 연산자는 대소 또는 동등의 관계를 표현하는 연산자입니다. 관계 연산자를 '비교 연산자'라고도 합니다. 두 수를 비교 할 때 쓰기 때문입니다. 관계 연산자 종류는 다음과 같습니다. a > b a가 b보다 큰가? == a == b a와 b가 같은가? != a != b a와 b가 다른가? = b a가 b보다 크거나 같은가? 위 관계에서 조건을 만족하면 1을, 만족하지 않으면 0을 반환합니다. 여기서 1은 '참(true)', 0은 '거짓(false)'을 의미 합니다. 즉 "조건을 만족하면 참을, 만족하지 않으면 거짓을 반환한다." C언어에서는 0은 제외한 나머지 숫자는 모두 '참'입니다. 즉 -1, 1, 2 모두 참 입니다. 여기서 1..

C언어 강의

(C언어 강의) Chapter -05 변수와 연산자 - 1

여러분 모두 변수가 무엇인지 아시죠? 수학시간에 많이 들어보셨을텐데요, C언어에서도 변수라는 개념이 존재합니다. 우리가 printf함수로 곱셈연산을 해본 적이 있죠? printf("%d", 3*4); 이번 강의에서는 연산을 한 결과를 메모리 공간에 저장하여 저장된 값을 출력하는 식으로 코드를 작성 해볼겁니다. 메모리 공간이라는 말이 아직은 낯설텐데 이 메모리 공간을 변수라고 생각하시면 되겠습니다. 메모리에 대해서도 나~~중에 배울테니 이렇게만 이해합시다. 자 그럼 변수는 어떻게 선언할까요? int num; 이런 식으로 합니다. int와 num의 의미는 다음과 같습니다. int 정수형 4바이트의 데이터를 저장할 수 있는 메모리 공간 할당.num 그 메모리 공간의 이름은 num num은 대충 알겠는데 int..

훈더덕
'2016/07 글 목록