C언어 복습

선행처리기

기능

선행처리기

파일 포함

#include

매크로 정의

#define

조건부 컴파일

#if, #ifdef, #ifndef, #else, #elif, #endif

기본자료형

정수자료형

크기

char

1 byte

short

2 byte

int

4 byte

long

4 byte

실수자료형

크기

float

4 byte

double

8 byte

변수

변수란 값을 저장할 수 있는 기억공간에 붙은 이름, 혹은 기억공간 자체를 가리켜 변수라고 합니다.

변수 선언 방법

TypeName varName;
TypeName varName = value;

상수

  • 리터럴 상수 : 이름이 없는 상수

  • 심볼릭 상수 : 이름을 지니는 상수

심볼릭 상수를 만드는 3가지 방법

  • const 키워드

  • #define 선행처리기

  • enum 열거형

자료형 변환

묵시적(자동) 형변환

피연산자 일치하지 않을 경우 형변환이 일어나며 더 큰 범위의 값을 표현할 수 있는 자료형으로 변환된다.

명시적(강제) 형변환

(자료형) 형변환대상

이렇게 하면 자료형으로 강제 형변환이 된다.

연산자

산술연산자

연산자

설명

+

덧셈

-

뺄셈

*

곱셈

/

나눗셈

%

나머지

대입 연산자

수식

설명

l = r

r-value를 l-value에 저장

복합 대입 연산자

+=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=

증감연산자

수식

설명

++a

선 증가, 후 연산

a++

선 연산, 후 증가

--a

선 감소, 후 연산

a--

선 연산, 후 감소

관계연산자

참 거짓을 반환

수식

설명

a == b

a, b 가 같은가?

a != b

a, b 가 다른가?

a < b

a 가 b 보다 작은가?

a <= b

a 가 b 보다 작거나 같은가?

a > b

a 가 b 보다 큰가?

a >= b

a 가 b 보다 크거나 같은가?

논리 연산자

참 거짓을 반환

수식

설명

A && B

A식과 B식이 모두 참이면 참(논리곱)

A || B

A식과 B식중 하나라도 참이면 참(논리합)

!A

A식이 참이면 거짓(부정)

조건 연산자

조건식 ? 참일때 실행할 문장 : 거짓일때 실행할 문장

비트 이동 연산자

수식

설명

x << n

변수 x의 비트를 왼쪽으로 n 만큼 이동

x >> n

변수 x의 비트를 오른쪽으로 n 만큼 이동

비트단위 논리 연산자

수식

설명

x | y

논리합

x & y

논리곱

x ^ y

배타적 논리합

~x

부정

기타 연산자

연산자

사용 예

설명

,

a=10, b=20;

순차적 명령 실행

&

int* p = &a;

주소 연산자

*

a = *p;

포인터 연산자

new

int* p = new int;

동적할당

delete

delete p;

동적할당된 메모리 반환

.

obj.a

객체 맴버 접근

->

pobj->a

포인터 객체 맴버 접근

[]

arr[3];

배열 첨자 접근

()

func(10);

함수 호출

::

nameSpace::a

유효범위 결정

sizeof

sizeof(int)

자료형의 크기 반환

조건문

if

if (조건식1) {
  // 조건식 1 참일때 실행
} else if(조건식2) {
  // 조건식 2 참일때 실행
} else {
  // 모두 거짓일때 실행
}

switch

switch(수식) {
  case 값1:
    // 수식이 값1 일때 실행할 문장
    break;
  case 값2:
    // 수식이 값2 일때 실행할 문장
    break;
  default:
    // 일치하는 수식이 없을때 실행할 문장
}

반복문

while

while(반복조건) {
  // 반복 조건이 참일때 실행할 문장
}

do~while

do {
  // 최소한번은 실행, 반복조건이 참이면 실행할 문장
}while(반복조건)

for

for (초기식; 조건식; 증감식) {
  // 조건식이 참일때 실행할 문장
}

함수

함수의 정의

ReturnType functionName(fParameterList) // 함수의 머리(원형)
{ // 함수 몸체
  // 처리할 문장...
  return ReturnType; // 결과값을 반환
}

함수의 호출

functionName(aParameterList)

변수의 접근 범위

전역변수

함수 외부에 선언된 변수 어디서든 접근이 가능하다.

지역변수

함수 내에서만 접근이 가능하며 함수 종료시 제거된다.

static 지역변수

  • 함수 내에서만 접근이 가능

  • 함수 호출시 1회만 선언 및 초기화 된다.

  • 함수 종료시에도 메모리에 존재한다.

배열

배열의 이름은 상수형태의 포인터 이다.

TypeName arrName[n]; // n개의 1차원 배열
TypeName arrName[n][m]; // n*m개의 2차원 배열

포인터

메모리의 주소값을 저장하기 위한 특별한 변수이다.

포인터 변수 선언

int a;
int* ptr = &a; // int* 변수 ptr에 a 변수의 주소 저장

포인터 사용

*ptr = 30; // 포인터 변수 ptr이 가리키는 주소에 30 저장

배열과 포인터

int arr[5];
int* ptr = arr;
arr[0] == ptr[0] // 동일하다
*(arr+2) = ptr[2] // 동일하다

Last updated