STUDY/C, C++

[C] C 프로그래밍 문법 (1)

sinawi95 2021. 3. 31. 23:03
728x90

이번주 금요일에 C를 써야해서 급하게 복습한다.

복습할 책은 대학교 1학년때 전공으로 배운 Perfect C 라는 책이다.

복습이니 모르는 것, 헷갈리는 것, 파이썬이랑 다른 내용들을 정리할 예정이다.

오늘 볼 내용은 챕터 2 프로그래밍 기초 부터 8 반복문까지 내용이다.


1. 변수를 선언한 이후 같은 변수명 재 정의 불가능

int a;
int a = 0;

2.  char 에 문자열 저장할때는 double quote 말고 single quote로 사용

single quote
double 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 사용한다.

m.blog.naver.com/PostView.nhn?blogId=tipsware&logNo=221200252889&proxyReferer=https:%2F%2Fwww.google.com%2F

 

scanf_s 함수 사용 시 주의 사항

: C 언어 관련 전체 목차 http://blog.naver.com/tipsware/221010831969 1. scanf 함수의 사용과 경고 발...

blog.naver.com

 

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