이번주 금요일에 C를 써야해서 급하게 복습한다.
복습할 책은 대학교 1학년때 전공으로 배운 Perfect C 라는 책이다.
복습이니 모르는 것, 헷갈리는 것, 파이썬이랑 다른 내용들을 정리할 예정이다.
오늘 볼 내용은 챕터 2 프로그래밍 기초 부터 8 반복문까지 내용이다.
1. 변수를 선언한 이후 같은 변수명 재 정의 불가능
int a;
int a = 0;
2. char 에 문자열 저장할때는 double quote 말고 single quote로 사용
3. <limits.h>: 정수 자료형에 관련된 여러 상수를 정의하고 있는 헤더파일
4. printf 함수 내에 들어가는 문자열은 double quote 사용
5. #define
5.1 치환문자열 끝에는 세미콜론이 들어가지 않음
- 전처리 지시자(#)가 붙어있는 경우 세미콜론이 들어가지 않을듯?
5.2 치환 문자열이긴경우 역슬래쉬를 사용해서 줄을 바꿔 사용할수 있음
5.3 매크로(기호상수)에 인자를 사용할수 있음
6. 자료형 재정의 typedef
- 어디에 쓰일지는 모르겠음 그냥 보기 편하라고 만들어놓은듯?
7. 문자열 입력
- scanf_s 사용할때는 메모리가 넘지 않게 받을 문자열의 크기를 명시해야한다.
- #define _CRT_SECURE_NO_WARNINGS를 사용해서 경고 제거하고 그냥 scanf 사용한다.
8. 논리연산자(and,or,not)과 비트논리 연산자를 헷갈리지 말것
- 논리연산자 and(&&), or(||), not(!)
- 비트 논리 연산자 and(&), or(|), not(~), xor(^)
9. 비트마스크: 특정한 비트의 값을 알아내는 방법
- 비트연산자 &사용
10. 형변환
int main() {
int x, y;
x = 10, y = 3;
printf("%d\n", x / y);
printf("%f\n", x / y);
printf("%f\n", (double) x / y);
return 0;
}
11. if, else if, else
- 조건식은 소괄호를 붙여서 사용하고 조건으로 분기했을때의 문장들은 중괄호를 붙여서 사용한다.
- 분기 이후의 문장은 한줄인경우 중괄호 생략 가능하다.(세미콜론은 붙인다.)
- 소괄호, 중괄호 마지막에 세미콜론은 붙이지 않는다.
- 파이썬은 if elif else이다.
12. switch
- 오랜만에 보는 거라 반가워서 적어둔다.
switch (expression){// expression 값과 일치하는 value를 찾음
case value1:
statement1;
break; // break을 붙이지않으면 다음 case도 진행
case value2:
statement2;
break;
default: // 모든 조건이 맞지 않을때 사용
statement;
break;
}
13. 반복문 for,while,do while
- while은 파이썬이랑 비슷하게 사용하면된다.
- do while은 파이썬에는 없다. 최소 한번은 동작하고 그이후에 반복문을 돌릴지 확인한다.
- for 가 가장 헷갈리는 부분이다.
python은 `for ~ in (iterator)` 형식으로 사용한다.
sum = 0
for i in range(1, 11): # i: 1 ~ 10
sum += i # 값을 더함
print(sum) # 55
C는 `for (초기화; 조건검사; 증감연산)`으로 사용한다
// for
int i, sum;
sum = 0;
for (int i=1; i < 11; i++)
sum += i;
printf("%d",sum);
// while
i = 1;
sum = 0;
while (i < 11){
sum += i;
i++;
}
printf("%d",sum);
// do while
i = 1;
sum = 0;
do{
sum += i;
i++;
} while (i < 11);
printf("%d",sum);
14. goto, label
- 쓰지말라고 하면 더 쓰고싶은데 딱히 사용할데는 없다.
단축키정리
ctrl+k+c / ctrl+k+u: 주석처리/해제
ctrl+k+s: 괄호로 감싸기
ctrl + d : 현재라인 아래에 복제
ctrl+r+r: 이름바꾸기
'STUDY > C, C++' 카테고리의 다른 글
[C] scanf 개행 문자 처리 (0) | 2021.06.09 |
---|---|
[C/C++] 버블 정렬, 카운트 정렬 (0) | 2021.06.03 |
[C/C++] 숫자퍼즐게임 (0) | 2021.05.11 |
[C] _getch를 사용한 움직임 구현 (0) | 2021.04.28 |
[C] 개발환경 구축 (2) | 2021.03.31 |