● 조건문

○ 조건에 따라 실행할 문장을 선택한다.

 

▶ if 문

◎ if(조건) 문장

    : 조건이 참이라면 다음 문장을 실행한다.

▷ 문장 여러개를 한 if문에 묶으려면 중괄호(바디) 사용한다. - if(조건) {문장....}

 

▶ if-else 문

◎ if(조건) 문장

    else 문장

    : 조건이 참이라면 if 다음 문장을 실행후 if-else의 끝으로, 조건이 거짓이라면 else의 다음 문장을 실행후 if-else 의         끝으로

▷ 마찬가지로 문장 여러개를 한 if, else에 묶으려면 중괄호(바디) 사용.

▷ else 에서 또다른 if-else를 연계해서 부른다면 여러 분기를 나눌 수 있음. (if ... else if ... else) 

 

▶ switch 문

◎ switch(조건-정수변수) {

   case 정수상수: 문장 [break;]

   ...

   [default : 문장]

    : 조건의 정수에 맞는 case 에서부터 문장을 실행한다.

▷ break는 switch문을 탈출시킨다.

    이를 이용해 조건의 정수와 같은 case의 문장만을 실행시킬 수 있다.

▷ case는 : 를 문장을 서술하며, 중괄호를 쓰지 않는 것을 주의.

 

 

● 반복문

○ 조건을 만족하면 특정 문장을 만족하여 실행.

 

▶ while 문

◎ while(조건) 문장

    : 조건이 참이라면 다음 문장을 실행. 문장이 끝나면 다시 조건을 검사한다. 이를 계속해서 반복.

▷ 중괄호(바디)를 이용해 문장 여러개를 묶을 수 있다.

 

▶ do-while 문

◎ do 문장 while(조건)

    : 문장을 1회 시행한 후, 조건을 검사한다.

      조건이 참이라면 문장을 다시 실행한다. 이를 계속해서 반복.

▷ 중괄호(바디)를 이용해 문장 여러개를 묶을 수 있다.

 

▶ for 문

◎ for(반복변수 초기화; 반복변수 조건; 반복변수 증감) 문장

    : 진입할 시 반복변수 초기화 실행.

      이후 반복변수 조건 검사 -> 문장 실행 -> 반복변수 증감 실행 을 반복. (조건이 거짓이면 탈출)

▷ 중괄호(바디)를 이용해 문장 여러개를 묶을 수 있다.

▷ 반복변수 조건에서 조건을 꼭 반복변수로 검사할 필요는 없다. (2번째 문장의 조건이 참이면 실행)

 

 

● 분기문

○ 조건없이 실행 순서를 변경한다.

 

▶ goto 문

◎ goto 라벨

    : 해당 라벨로 문장 실행 순서를 이동한다.

    [라벨 : ]의 형태로 라벨이 구성되어있다.

▷ 좋지 않은 문장이므로 사용하지 않는 것이 좋다.

 

▶ return 문

◎ return [반환값];

    : 반환값을 전달한 뒤, 함수를 빠져나간다.

▷ void 함수라면 반환값을 전달할 필요가 없다. (return 문장을 넣지 않아도 된다.)

▷ void 함수가 아니라면 왠만하면 있어야 한다.

 

▶ continue 문

◎ continue;

    : 반복문 내에서 사용.

      해당 반복문의 조건 검사부로 이동한다. 그 사이에 있는 문장은 생략한다.

 

▶ break 문

◎ break;

    : 반복문 내에서 사용.

      해당 반복문을 빠져나간다. 

 

 

● 함수 호출

◎ 함수이름(매개 변수);

    : 해당 함수를 실행 한 뒤, 다시 호출 위치로 돌아온다.

'컴퓨터 언어 > C언어' 카테고리의 다른 글

연산자  (0) 2019.11.13
이스케이프 시퀸스  (0) 2019.09.03
변수  (0) 2019.09.03
자료형과 형변환  (0) 2019.07.25
서식  (0) 2019.07.25

 단항 연산자

 

▶ + / - : 부호 변경

+a : a와 같음

◎ -a : a의 부호 변경

 

▶ ++, -- : 증감 연산자

◎ ++a : 전위 증감, 변수 a의 값을 1 더한 값을 반환 (변수처럼 값 대입 가능)

◎ a++ : 후위 증감, 변수 a의 값을 반환하고, 1을 더함 (변수처럼 값 대입 불가능)

▷ --는 값에서 1을 뺀다.

 

▶ & : 주소 연산자

◎ &a : 변수 a의 주소를 가져옴. (주소는 차지하는 연속된 메모리에서 첫번째 메모리의 주소)

 

▶ * : 역참조 연산자

◎ *pa : 주소 pa에 있는 값을 가져옴. (메모리 크기는 pa의 포인터 자료형에 따른다.)

 

▶ ! : 부정 (논리 연산자)

◎ !a : a가 true라면 false를, false라면 true를 반환

 

▶ ! : 반전 (NOT) (비트 연산자)

◎ ~a : a의 비트를 반전. (1->0, 0->1)

 

▶ (type) : 타입 캐스팅, 명시적 형변환

◎ (int) a : a의 자료형을 int로 바꿈 (float/double의 실수형이었다면 내림 처리)

 

▶ sizeof() : 변수 메모리 크기 확인

◎ sizeof(a) : 변수 a가 차지하는 메모리 크기를 확인 (배열이라면 배열이 차지하는 메모리까지도)

 

 

 이항 연산자 

 

▶+, -, *, /, % : 산술 연산자

◎ a%b : a에서 b를 나눈 나머지.

 

▶ &&, ||,  : 논리 연산자

◎ a&&b : a and b, a와 b가 모두 true 이면 true, 나머지는 false.

◎ a| |b : a or b, a와 b가 모두 flase 이면 false, 나머지는 true.

 

▶ ==, !=, >, <, >=, <= : 관계 연산자

◎ a==b : a와 b가 같으면 true, 아니면 false.

◎ a!=b : a와 b가 다르면 true, 아니면 false.

◎ a>b : a가 b보다 크면 true, 아니면 false.

◎ a<b : a가 b보다 작으면 true, 아니면 false.

◎ a>=b : a가 b보다 크거나 같으면 true, 아니면 false.

◎ a<=b : a가 b보다 작거나 같으면 true, 아니면 false.

 

▶ = : 대입 연산자

◎ a=b : 변수 a에 b의 값을 대입. 대입한 값을 반환.

 

▶ +=, -=, /=, *=, %= : 복합 대입 연산자

▷ a□=b : a=a□b. (□는 +,-,/,*,% 중 하나)

 

▶ &, ^, |, >>, << : 비트 연산자

▷ 비트 연산 : 두 수의 2진수값을 기준으로, 같은 자리수끼리 연산을 하여 이를 자리수 끝까지 반복함.

◎ a&b : 비트 AND 연산, 둘 모두 1이면 1, 나머지 0.

◎ a^b : 비트 XOR 연산, 둘의 값이 같으면 1, 나머지 0.

◎ a|b : 비트 OR 연산, 둘 모두 0이면 0, 나머지 1.

▷ 시프트 연산 : 자리수를 움직임.

◎ a>>b : 오른쪽 시프트 연산, a의 비트를 b만큼 오른쪽으로 이동. 새로운 비트는 부호 비트와 같음.

◎ a<<b : 왼쪽 시프트 연산, a의 비트를 b만큼 왼으로 이동. 새로운 비트는 0.

 

▶ &=, ^=, |=, >>=, <<= : 비트 복합 대입 연산자

▷ a□=b : a=a□b. (□는 &,^,|,>>,<< 중 하나)

 

 

 삼항 연산자 

▶ (? : ) : 조건 연산자

◎ (a ? b : c) : 조건 a의 결과가 true이면 b를, false이면 c를 반환.

 

 

※ , : 쉼표 연산자

◎ a, b : 두 식 모두 수행, 뒤의 식의 결과를 반환.

 

● 연산자 우선순위

▶ 동일 연산자끼리

▷ 우우선 : 오른쪽부터 왼쪽으로 연산한다.

             단항연산자 (후위 증감 제외), 대입 연산자, 조건 연산자

 

▷ 좌우선 : 왼쪽부터 오른쪽으로 연산한다.

             우우선을 제외한 모든 연산자

 

▶ 다른 연산자끼리

우선순위 연산자 설명 결합법칙 (방향)
1 () 괄호, 함수 호출 좌우선 (->)
1 a++, a-- 후위 증감 연산자 좌우선
1 [] 배열 첨자 좌우선
1 ., -> 구조체 멤버 접근 연산자 좌우선
1 (자료형) {값} 복합 리터럴 좌우선
2 ++a, --a 전위 증감 연산자 우우선 (<-)
2 +a, -a 부호 변경 우우선
2 !, ~ 논리 / 비트 NOT 우우선
2 (자료형) 자료형 변환 우우선
2 &, * 주소 / 역참조 연산자 우우선
2 sizeof() 자료형의 크기 우우선
3 *, /, % 산술 연산자 (곱,분,나머지) 좌우선 (->)
4 +, - 산술 연산자 (합,차) 좌우선
5 >>, << 시프트 연산자 좌우선
6 <, <=, >, >= 관계 연산자 (크기 비교) 좌우선
7 ==, != 관계 연산자 (같음 비교) 좌우선
8 & 비트 AND 연산자  좌우선
9 ^ 비트 XOR 연산자 좌우선
10 | 비트 OR 연산자 좌우선
11 && 논리 AND 연산자 좌우선
12 | | 논리 OR 연산자 좌우선
13 ? :  조건 연산자 우우선 (<-)
14 □= 복합 대입 연산자 (비트포함) 우우선
15 , 쉼표 (콤마) 연산자 좌우선 (->)

 

출처 : https://dojang.io/mod/page/view.php?id=188

'컴퓨터 언어 > C언어' 카테고리의 다른 글

제어구조  (0) 2019.11.27
이스케이프 시퀸스  (0) 2019.09.03
변수  (0) 2019.09.03
자료형과 형변환  (0) 2019.07.25
서식  (0) 2019.07.25
\' 작은 따옴표(')
\" 큰 따옴표(")
\? 물음표(?)
\\ 백슬래시(\)
\a 경고음 발생
\b 백스페이스(backspace)
\n 줄 바꿈(new line)
\r 캐리지 리턴(carriage return) - 커서가 줄의 처음으로
\t 수평 탭(tab)
\v 수직 탭(tab)
\f 폼 피드(form feed) - 프린트 출력시 다음 페이지로 이동
\0

Null 문자(NUL, 아스키 코드 0번) - 문자열의 끝에 문자열의 끝을 알리기 위해 자동으로 삽입됨.

직접 사용하는 경우는 거의 없음.

 

 

출처 : http://tcpschool.com/c/c_intro_printf

        http://ecomputernotes.com/what-is-c/basic-of-c-programming/escape-sequences-in-c

 

참고 : https://linuxism.ustd.ip.or.kr/95 (NUL 문자 관련)

 

'컴퓨터 언어 > C언어' 카테고리의 다른 글

제어구조  (0) 2019.11.27
연산자  (0) 2019.11.13
변수  (0) 2019.09.03
자료형과 형변환  (0) 2019.07.25
서식  (0) 2019.07.25

▶변수: 처리할 데이터 (상수)를 저장하는 기억장소

▷ 변수명은 영문자, 숫자, _ 를 사용

▷ 선언

  ● 변수자료형 변수명;

  ○ 변수의 초기치는 null (사용 불가)

   ex) int a;

 

  ● 변수자료형 변수명 = 초기치;

  ○ 변수 선언후 초기치로 초기화

   ex) int a = 10;

 

▷ 초기화 : 변수를 해당 값으로 바꾼다. (대입시킨다)

  ○ 변수명 = 값;

'컴퓨터 언어 > C언어' 카테고리의 다른 글

제어구조  (0) 2019.11.27
연산자  (0) 2019.11.13
이스케이프 시퀸스  (0) 2019.09.03
자료형과 형변환  (0) 2019.07.25
서식  (0) 2019.07.25

▶자료형

 

▷ 정수

short 정수 2 byte
unsigned short 부호없는 정수 2 byte
int 정수 4 byte
unsigned int 부호없는 정수 4 byte
long 정수  4 byte
unsigned long 부호없는 정수 4 byte

 

▷ 실수 (부동 소수점)

float 실수 (단정도) 4 byte
double 실수 (배정도) 8 byte
long double 실수 8 byte 이상

 

▷ 문자

char 문자 혹은 정수 1 byte
unsigned char 문자 혹은 부호없는 정수 1 byte

 

 

▶형변환

 

▷ 묵시적 형변환 : 연산 결과는 크기가 큰 자료형으로 자동으로 변환된다.

ex) 'A' + 32 --> 97

 

▷ 명시적 형변환 :  사용자가 그 순간의 자료형을 지정할 수 있다.

ex) (char) ('A' + 32) --> a

'컴퓨터 언어 > C언어' 카테고리의 다른 글

제어구조  (0) 2019.11.27
연산자  (0) 2019.11.13
이스케이프 시퀸스  (0) 2019.09.03
변수  (0) 2019.09.03
서식  (0) 2019.07.25

+ Recent posts