Week 01
< 180321 >
- C 언어는 main() 에서부터 시작한다..!!
- 첫 프로그래밍
1 2 3 4 5 6 7 | #include <stdio.h> int main() { printf("Hello World"); return 0; } | cs |
>> 1 : 헤더파일 선언, #include <stdio.h> 에서 stdio는 standard input output 의 약자.
- 주석처리
1 2 3 4 5 6 7 | //#include <stdio.h> int main() { printf("Hello World"); return 0; } | cs |
>> 1 : // 는 한줄을 주석처리 한다. 주석처리 하면 해당 라인을 무시한다.
>> 위의 경우 1번 라인을 무시하게 되면 printf() 를 사용할 수 없게 된다.
- 서식문자 : %d, %c, %lf
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main() { printf("int : %d\n", 20); printf("char : %c\n", 'A'); printf("double : %lf\n", 3.141592); return 0; } | cs |
>> 20 은 상수형 정수
>> 'A' 는 상수형 문자
>> 3.141592 는 상수형 실수
>> printf() 에서 정수를 출력하고 싶을 땐 서식문자 %d를, 문자는 %c, 실수는 %lf 를 사용한다.
>> 위의 경우 세종류의 데이터가 있다. 정수형, 문자형, 실수형
- 변수를 선언하고, 값을 대입하고 출력하기.
1) 정수
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main() { int num; num = 3; printf("num = %d\n", num); return 0; } | cs |
>> 5 : 정수형 변수 선언. 정수형 데이터를 담는 변수를 선언하기 위해서는 int 라는 자료형을 선언하고 한칸 띄고 변수 이름을 쓴다. (변수이름은 마음데로, 하지만 작명규칙이 존재, 찾아볼것.)
>> 6 : 정수값을 num 이란 변수에 대입. 여기서 = 는 대입연산자 이다.
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main() { int num; num = 3; printf("num = %d\n", num); // num = 3 num = 7; printf("num = %d\n", num); // num = 7 return 0; } | cs |
>> 9 : num 이란 변수에 7을 대입. 10 라인에서 num = 7 이란 결과가 출력
>> 변수 vs 상수 : 변수는 변하는 값. 어떤 값을 대입하냐에 따라 값이 바뀔 수 있다. 하지만 상수는 그 값 자체로만 사용이 가능. 그래서 상수.
2) 문자
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main() { char ch; ch = 'A'; printf("ch = %c\n", ch); // ch = A return 0; } | cs |
>> 5 : 문자를 담는 변수를 선언하기 위해서는 자료형 char 을 사용
3) 실수
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main() { double dnum; dnum = 3.14; printf("dnum = %lf\n", dnum); // dnum = 3.140000 return 0; } | cs |
>> 5 : 실수를 담는 변수를 선언하기 위해서는 자료형 double 를 선언한다.
>> 7 : 실행결과는 dnum = 3.140000 , 기본적으로 소수점 6자리까지 출력한다.
- 문자의 정체
1 2 3 4 5 6 7 8 | #include <stdio.h> int main() { char ch = 'b'-'a'; printf("ch = %d\n", ch); // ch = 1 return 0; } | cs |
>> 5 : 변수 ch를 선언과 동시에 'b'-'a' 값으로 초기화
>> 여기서 'b'-'a' 라는 연산이 가능하다...!!
1) 문자의 정체는 정수. 실제로 어떤 문자는 어떤 정수의 값으로 매핑(매칭)되어 있다. (아스키 코드표 참조)
2) 아스키 코드값의 특징
>> 문자인 숫자는 '0', '1', '2', ... '9' 의 순서로 되어 있다. 얼마에 매핑되어 있는지는 외울 필요 없음.
>> 알파벳 대문자는 'A', 'B', 'C', ... , 'Z' 순으로 되어있다.
>> 알파벳 소문자는 'a', 'b', 'c', ... , 'z' 순으로 되어 있따.
>> 알파벳 대문자가 소문자보다 앞선다. (작은 값을 갖는다.)
>> 'a' 와 'A'의 차이, 'b' 와 'B'등 소문자와 대문자 사이의 아스키코드 값 차이는 일정하다.
>> 널문자의 아스키 코드값은 0 (알아두면 좋음.)
- 소문자를 대문자로, 대문자를 소문자로 변경해서 출력하기.
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> int main() { char ch1 = 'a'; char ch2 = 'A'; char diff = 'a'-'A'; printf("a => %c\n", ch1-diff); // a => A printf("A => %c\n", ch2+diff); // A => a return 0; } | cs |
>> 소문자와 대문자의 차이가 일정하기 때문에, 그 일정한 값을 대문자에서 더해주면 소문자가 되고, 소문자에서 빼주면 대문자가 된다...!!
- 문자 '9' 를 정수 9로 표현하기.
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main() { char num = '9'; printf("num = %c\n", num); printf("num = %d\n", num-'0'); return 0; } | cs |
>> 6, 7번라인 모두 9를 출력한다. 6의 결과는 문자형태의 9, 7의 결과는 정수형태의 9.
>> '1' 과 '0' 의 차이는 1 이다.
>> '2' 와 '1'의 차이도 1 이다.
>> '2' 와'0'의 차이는 2이다. >> '9' 와 '0'의 차이는 9 가 된다..!!
- 기타
1) 검색은 구글에서.
2) 소스코드를 실행했을 때 뜨는 창의 이름은 콘솔창.
3) VS2017 에서 빌드하고 컴파일 할때 단축시 사용하기..!!
4) C 언어의 소스코드 확장자는 .c
5) 과제는 기왕이면 해와서 튜터링 시간에 맞춰보기.
- 숙제
1) 1 vs '1' 의 차이 알아보기.