introduction to the c language structure of a c program

31
Sogang University 1.Introduction to the C Language 2.Structure of a C Program C 언언 (STS2008-04) 1

Upload: kiral

Post on 04-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

C 언어 ( STS2008 -04). Introduction to the C Language Structure of a C Program. Identifier. ▪ Identifier ▫ Identifier 는 데이터나 객체에 부여하는 이름을 뜻함 ▪ Identifier 의 규칙 ▫ 첫 글자는 영문자나 언더스코어 (‘_’) 로 시작 ▫ 영문자 , 숫자 , 언더스코어로만 구성되어야 ▫ 처음 63 글자만 구별 가능 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduction to the C Language Structure of a C Program

Sogang University

1. Introduction to the C Lan-

guage2. Structure of a C Program

1. Introduction to the C Lan-guage

2. Structure of a C Program

C 언어 (STS2008-04)C 언어 (STS2008-04)

1

Page 2: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

IdentifierIdentifier

▪ Identifier ▫ Identifier 는 데이터나 객체에 부여하는 이름을 뜻함

▪ Identifier 의 규칙 ▫ 첫 글자는 영문자나 언더스코어 (‘_’) 로 시작 ▫ 영문자 , 숫자 , 언더스코어로만 구성되어야 ▫ 처음 63 글자만 구별 가능 ▫ Keyword 는 사용할 수 없음 예 ) double, int, switch, if, else, return,

static 등

▪ Identifier 의 예

2

Page 3: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ A set of values and a set of operations that can be applied on those values.

▫ Void : void 타입은 값을 갖고 있지 않으며 , 연산 없음

▫ Derived : 다른 타입들로 구성된 복잡한 구조예 ) pointer, enumerated type, union, array, and structure

3

TypesTypes

Page 4: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ Boolean Type

▫ Boolean Type 은 true 와 false 오직 2 가지 값으로 나타냄 ▫ Boolean Type 이 규정되기 전에도 integer 값을 이용해 표현

▫ True 0 이외의 수 (positive or negative)▫ False 0 (zero)

▪ Character Type ▫ 1byte 로 저장되며 하나의 문자 저장 ▫ 저장할 수 있는 문자는 alphabet 문자에 한정된 것이 아니라 숫자와

기타기호도 포함

▫ char 형은 0~255 의 값을 갖는 작은 int 형으로 해석가능 그래서 C 에서는 char 형을 자주 int 형과 같이 취급함

▫ 예 ) char 형 변수는 내부적으로는 정수형이므로 산술연산이 가능 ▫ 다음의 경우 문자 ‘ A’ 의 다음 두 번째 문자인 ‘ C’ 가 출력

TypesTypes

char c = ‘A’; // c = 65printf("%c", c+2); // c+2 = 67 => ‘C’

4

Page 5: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ Integer Type

▫ int 형은 정수를 저장 ▫ short int, int, long int, long long int 로 구분됨 ▫ 각각의 integer size 들은 signed 혹은 unsigned 될 수 있음

※ 위의 표는 일반적인 값을 나타내며 플랫폼에 따라 달라질 수 있다 .

▪Floating-Point Type ▫ float 형은 실수를 저장 ▫ real, imaginary, complex 로 분류됨 ▫ real type 은 float, double, long double 로만 구분됨

TypesTypes

5

Page 6: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Variables And ConstantsVariables And Constants▪ Variables ▫ 값을 저장할 수 있는 기억장소에 이름을 붙인 것으로 선언된 후 쓰여야 함 ▫ 변수를 선언할 때는 변수의 type 과 변수의 이름을 나란히 써줌 ▫ 변수의 선언은 함수의 첫 부분에서만 가능

▪ variable initialization( 변수의 초기화 ) ▫ 변수를 초기화하지 않으면 어떤 값이 들어있는지 알 수 없음 초기화 이전에 저장되어 있는 값을 쓰레기 값 (garbage) 이라 함

▪ Constants ▫ 프로그램이 실행되는 동안에 변하지 않는 데이터 값

const float pi = 3.14159const float pi = 3.14159

6

Page 7: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Output Formatting : printfOutput Formatting : printf

▪ C 에서 출력을 하는 방법은 여러가지가 있지만 가장 쉽게 쓸 수 있는 것은 printf(print formatted) 이다 .

“ ” ▪ 안에 출력할 내용을 적는다 . ▪ 변수의 값을 출력할 때는 “ ” 안의 해당 위치에 형식문자 (%d, %c, etc..) 를 적고 , “ ” 뒤에 해당하는 변수를 순서대로 적는다 .

printf (“ … %d … %f …“, int 형변수 , float 형변수 ); printf (“ … %d … %f …“, int 형변수 , float 형변수 );

7

Page 8: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Output Formatting : printfOutput Formatting : printf

▪ int 형 변수 값의 출력 형식 ▫ %d 사이에 폭을 나타내는 정수를 기술 ▫ 필드 폭을 지정하면 자동적으로

우측정렬이 된다 . 좌측정렬을 위해서는 필드 폭 앞에 ‘ -’ 를 붙임

▪ float 형 변수값의 출력 형식 ▫ 필드 폭을 지정하려면 %f 사이에 폭을

기술 ▫ %10f 라고 기술하면 전체 폭은 10, 소수점 이하 자리수 폭은 기본 6 으로

지정 ▫ %10.5f 이면 전체 폭은 10, 5 는 소수점 이하 자리수의 폭을 의미 ▫ 지정한 전체 폭이 출력 값의 전체 폭보다

작으면 , 지정된 작은 폭은 무시하고 원래의 출력 값의 폭으로 출력

printf(“%5d”, 30);printf(“%5d”, 30);

전체 폭은 5 이며 ,정렬은 기본적으로 우측정렬전체 폭은 5 이며 ,정렬은 기본적으로 우측정렬

33 00

printf(“%+5d”, 30);

printf(“%+5d”, 30);

전체 폭은 5 이며 ,정렬은 기본적으로 우측정렬 ,+ 의미는 값의 부호 출력

전체 폭은 5 이며 ,정렬은 기본적으로 우측정렬 ,+ 의미는 값의 부호 출력

++ 33 00

printf(“%f”, 3.1);

printf(“%f”, 3.1);

전체 폭은 8 이며 , 변환문자 f는 소수점 이하 6 자리가 기본전체 폭은 8 이며 , 변환문자 f는 소수점 이하 6 자리가 기본

33 .. 11 00 00 00 00 00

printf(“%-5.2f”, 3.1);

printf(“%-5.2f”, 3.1);

전체 폭은 5 이며 , 소수점 이하 2 자리 , 정렬은 – 부호에 의해 좌측정렬

전체 폭은 5 이며 , 소수점 이하 2 자리 , 정렬은 – 부호에 의해 좌측정렬

33 .. 11 00

8

Page 9: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Output Formatting : printfOutput Formatting : printf

▪ 오류가 있는 output 의 예

▫ Three conversion specifications, but only two values

▫ Two conversion specifications, with three values

▫ Format specification does not match the data type

printf(“%d %d\n”, 44, 55, 66);

printf(“%d %d\n”, 44, 55, 66); 44, 5544, 55

( 세 번째 값은 무시된다 .)

printf(“%d %d %d\n”, 44, 55);

printf(“%d %d %d\n”, 44, 55); 44, 55, 13451331644, 55, 134513316

( 세 개의 값이 출력된다 , 이때 뒤에 오는 argument 의 수가 달라 match 되는 값이 없어 쓰레기 값 이 출력 된다 .)

float x = 123.45;printf(“The Data are : %d\n”, x);

float x = 123.45;printf(“The Data are : %d\n”, x);

The Data are : -1073741824The Data are : -1073741824

9

(float type 에 변수를 int type 으로 출력하여 잘못된 결과 값이 나온다 .)

Page 10: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Input Formatting: scanfInput Formatting: scanf

▪ C 에서 입력을 받는 방법 중가장 쉽게 쓸 수 있는 것은 scanf() 이다 .

▫ scanf() 는 도스창인 표준 입력으로부터 여러 종류의 자료 값을 입력 받을 수 있음 ▫ 사용법은 printf() 와 유사

▫ 단 , 입력 값을 저장할 변수의 이름 앞에 ‘ &’ 를 반드시 붙여줘야 한다 .

(& 은 해당 변수의 주소를 의미하는 연산자 )

scanf(“ %d %f ”, &age, &weight);

10

Page 11: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

C Programs - CommentC Programs - Comment

▪ comment 는 reader 가 프로그램을 이해하는데 도움을 줌

▪ opening token: /*▪ closing token: */

▪ 컴파일러는 /* …… */ 사이의 모든 내용을 무시 ▪ 컴파일러는 // …… 다음의 한 라인의 내용 을 무시

▪ 주석 내부에 주석을 중복하여

사용하는 경우 일부는 주석처리가 되지 않는다 .

이 부분만 주석으로 처리

이 부분만 주석으로 처리

주석처리 되지 않은 부분

주석처리 되지 않은 부분

11

Page 12: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ Decimal Integer ▫ 0, 237, 18567, -789

▪ Octal Integer (0 으로 시작 ) ▫ 017, 05643, 0234

▪ Hexadecimal Integer (0x 로 시작 ) ▫ 0x12FF, 0x56ABC, 0x89A345

예 )unsigned int A = 0347; /*octal number

347*/unsigned int B = 0x56A7C; /*hexadecimal num-

ber56A7C*/

Number BasesNumber Bases

12

Page 13: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ 2 진수 , 8 진수 , 16 진수 사이의 변환 ▫ 2 진수를 오른쪽에서부터 3bits 로 묶어서 8 진수로 변환 .

ex) 0111001100011110

▫ 2 진수를 오른쪽에서부터 4bits 로 묶어서 16 진수로 변환ex) 0111001100011110

▫ 8 진수 하나의 숫자는 2 진수의 3 자리로 변환

▫ 16 진수 하나의 숫자는 2 진수의 4 자리로 변환

▫ 16 진수 8 진수는 2 진수로 변환하여 변환

0 111 001 100 011 110 0 7 1 4 3 6

0111 0011 0001 1110 7 3 1 E

0 6 5 0 4 110 101 000 100

0 x 3 2 F C 0011 0010 1111 1100

Number ConversionNumber Conversion

13

Page 14: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

ExpressionsExpressions

▪ 프로그램 언어에서 변수나 상수 , 연산자로 구성된 식 ▪ 표현식은 항상 결과 ( 반환 ) 값을 갖음

▫ Operator( 연산자 ) : +, -, *, / 등 ▫ Operand ( 피연산자 ): operator 를 가지고 계산되는 상수 또는 변수

14

Page 15: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

ExpressionsExpressions

▪ Primary expression: operator 가 없이 오직 하나의 operand 로 이루어진 가장 기본적인 형태

▫ 식별자 ( Identifier ) ▫ 식별자 예 : a, b12, price, calc, INT_MAX 등

▫ 상수 ( Constants ) ▫ Constants 예 : 5, 123.45, ‘A’, “Welcome” 등

▫ 괄호식 ( Parenthetical Expression ) ▫ 괄호식 예 : (2*3)+4, (a=23+b*6) 등

15

Page 16: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

ExpressionsExpressions

▪ Prefix expression ▫ 형식 : operator 가 operand 앞에 나옴

▪ Postfix expression

▫ 형식 : operator 가 operand 뒤에 나옴

16

Page 17: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

ExpressionsExpressions

▪ ++a 과 a++ 의 차이 ▫ prefix 와 postfix 는 증가 / 감소 연산을 수행하는 시점이 다름 ▫ prefix 의 경우 , 변수의 참조보다 먼저 연산을 수행 ▫ postfix 의 경우 , 변수의 참조 후에 연산을 수행

int x, a=1;x = ++a;

a 에 1 을 더한 후 , x 에 그 값을 대입한다 . x 의 값은 2 가 된다 .

int x, a=1;x = a++;

x 에 값을 대입한 후 , a 에 1 을 더한다 . x 의 값은 여전히 1 이다 .

<postfix><prefix>

17

Page 18: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

ExpressionsExpressions

▪ 증가연산 (prefix, postfix) 과 일반산술연산(infix) 의 비교

18

printf X

10

10 11

11 11

10 10

10 10

printf X

10

11 10

10 10

9 10

10 10

Page 19: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

ExpressionsExpressions

▪ 증감연산 사용 이유 ▫ 증감연산자를 이용하면 프로그램 형태가 간결 ▫ 기계어 코드와 일대일 대응되므로 실행속도가 개선

▪ 주의점 ▫ 연산자의 위치에 따라 evaluation value 가 다르므로 주의 요구 ▫ 증감연산자는 ++, -- 자체가 연산자 기호 중간에 공백이 들어가면 안됨 ▫ 산술연산이나 관계 , 논리연산보다 그 평가를 먼저 한다 .

▫ 증감연산자는 피연산자로 변수를 사용할 수 있지만 , 상수나 일반 수식을 피연산자로 사용 불가능

▫ 다음과 같은 수식은 잘못된 수식

int a = 10; ++300; /* 상수에는 증가 연산자를 사용할 수 없다 */ (a+1)--; /* 일반 수식에는 증가 연산자를 사용할 수 없다 */

19

Page 20: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Binary expressionBinary expression

▪ Binary expression ▫ 형식 : 피연산자 – 연산자 – 피연산자 (operand – operator -

operand)

▫ Operator 가 operand 사이에 있음

▫ Binary expression 예 ▫ a+7, 3+4, b-11 등 additive expression (+, -)

▫ 10*12, a /4, 5%2 등 multiplicative expression (*, /, %) ▫ %(modulo) 는 나머지를 구하는 연산자

20

Page 21: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Assignment expressionAssignment expression

▪ Assignment expression ▫ 수학에서는 “우측의 값과 좌측의 값이 같다”라는 의미이나 , C 언어에서는 “우측의 값을 좌측의 저장 장소에 저장하라”라는 의미

▫ 분류 ▫ simple assignment ▫ 예 ) a=5, b=x+1, i=i+1 등

▫ Compound assignment

▫ 예 ) x+=y, x*=y, x/=y 등

21

Page 22: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ Destination of an assignment ▫ 대입 명령은 항상 대입 연산자의 오른쪽에서 왼쪽으로

Ex) A = 9; : 변수 (variable) A 에 값 (value) 9 를 대입

9 = A; : 9 는 올바른 변수 이름이 아니므로 잘못된 표현

Ex) X = Y * Z; : 변수 Y 와 Z 를 곱한 결과값을 변수 X 에 대입

X * Y = Z; : X * Y 는 식별자 , 즉 하나의 변수가 아닌 표현식 이므로 C 문법에 어긋난 잘못된 표현

Ex) A = B;: 변수 B 가 갖는 값을 변수 A 에 대입B = A;: 변수 A 가 갖는 값을 변수 B 에 대입

따라서 위의 두 대입 명령문은 다른 의미를 갖는다 . 같다는 표현을 하기 위해서는 “ = =“ 연산자 이용 ! Ex) A = B = C = 0; or A = ( B = ( C = 0 ));

대입 명령은 항상 연산자의 오른쪽에서 왼쪽으로 대입되므로 위의 두 명령은 같은 의미를 갖는다 .

Ex) counter = 3; counter = counter + 1;

counter = 5 * counter;

counter

3 4

counter

20

counter

Assignment expressionAssignment expression

22

Page 23: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Precedence & AssociativityPrecedence & Associativity

▪ Precedence : 다른 연산자들 사이의 우선 순위 ▫ 수학에서도 곱하기나 나누기 연산자가 더하기나 빼기 연산자보다도 우선 순위가 더 높은 것처럼 C 언어에서도 연산자 사이에 우선순위가

있다 . ▫ Precedence 의 예 ▫ 2 + 3 * 4 ( 2 + ( 3 * 4 ) ) ▫ - b ++ ( - ( b++ ) )

▪ Associativity : 같은 순위의 연산자들 사이의 우선 순위 ▫ Associativity 의 예 ▫ Left-to-Right (Simple Assignment) ▫ 3 * 8 / 4 % 4 * 5 ( ( ( ( 3 * 8 ) / 4 ) % 4 ) * 5 ) ▫ Right-to-Left (Compound Assignment) ▫ a += b *=c -= 5 ( a += ( b *= ( c -= 5 ) ) ) ( a = a + ( b = b * ( c = c – 5 ) ) )

23

Page 24: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Precedence tale for C expressionPrecedence tale for C expression

24

Page 25: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Type ConversionType Conversion

▪ Type Conversion ▫ 일반적으로 C 언어의 연산식에서 여러 피연산자의 자료형이 서로 다른 경우 , 하나의 통일된 자료형으로 자동 변환하여 연산을 수행 ▫ Implicit type conversion (coercion) :

C 컴파일러가 판단하여 자동으로 데이터형을 변형하는 경우 ▫ 다음과 같은 경우 C 컴파일러가 판단하여 자동 형 변환을 수행한다 .

▫ 수식에서 데이터형이 혼합되어 사용되었을 때 값을 변환 ▫ 특정한 데이터형의 변수에 다른 데이터형의 값을 대입할 때 , 값을 변환

▫ Explicit type conversion (cast) : 프로그래머가 형 변환자(cast) 를 사용하여 강제적으로 변형하는 경우

25

Page 26: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ 서로 다른 데이터 형이 혼합하여 사용될 때 ▫ 수식에서 형 변환은 보통 범위가 큰 데이터형으로 변환 ▫ Conversion Rank ▫ 각각의 타입들에 대해 계급을 할당 ▫ Ex) long double 타입의 실수는 long 타입의 정수보다 높은 계급을 갖고 있다 .

Implicit type conversionImplicit type conversion

“ 모든 문자들은 숫자 값을 가지고 있기 때문에 문자를

정수와 부동소수점 값에 더할 수 있다”

26

Page 27: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

Implicit type conversionImplicit type conversion

▪ 형 확장 (Promotion) ▫ 하나 이상의 데이터 형이 혼합식을 구성할 때 ▫ 가장 큰 데이터 형에 맞춰 자동으로 형 변환이 이루어지는 규칙을

적용

27

< 실행결과 >

1) ch * i ch 는 int 형으로 확장되어 i 과 계산 수행된다 . 여기서 ch 는 대문자 A 인데 이는 ASCII 코드값 65 로 계산된다 .

2) * f 1) 에서 계산된 결과는 float 형으로 확장되어 f 와 계산 수행된다 .

3) + 300 300 도 float 형으로 확장되어 2) 의 결과에 더해진다 .

4) 계산의 결과는 double 형으로 확장되어 d 에 대입된다 .

Page 28: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ 범위가 큰 데이터 형에서 작은 데이터 형으로의 변환은 문제 발생

형 변 환 문 제 점

큰 부동 소수점형을작은 부동 소수점형으로

double float

정밀도 ( 유효 숫자 ) 에 손실이 있다 .

원래 값이 변환 데이터형의 범위를 벗어나는 경우의 결과는 예측 불허이다 .

부동 소수점형을정수형으로float int

소수부를 잃어버리게 된다 .

원래 값이 변화 데이터형의 범위를 벗어나는 경우는 결과는 예측 불허이다 .

큰 정수형을작은 정수형으로long short

원래 값이 변화 데이터형의 범위를 벗어나는 경우에 일반적으로 하위 바이트들만이 복사된다 .

Implicit type conversionImplicit type conversion

28

Page 29: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ Explicit conversion ( casting, cast operation ) ▫ 프로그래머가 강제적으로 변수의 데이터형 변환 가능 ▫ 피연산자의 값을 앞 위치의 괄호 안에서 지정한 자료형으로 변환하는 연산

( type ) expression expression 의 값을

type 의 데이터형으로 강제로 변환

Explicit type conversionExplicit type conversion

29

치환문에 의한 형변환

캐스트 연산자에 의한 강제 형변환

< 실행결과 >

Page 30: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

▪ 시스템 , OS (운영체제 ), 컴파일러의 종류에 따라 각 데이터형의 메모리 저장 크기가 다를 수 있음 ▪ 프로그램이 사용하는 데이터형의 크기를 알 수 있는 방법으로 sizeof 연산자를 사용할 수 있음 (unary expression)

▫ sizeof ( type ) ▫ 위의 연산자를 사용하면 해당 데이터형의 크기를 byte 단위로 알려줌

Ex) sizeof(int); sizeof(float);

cf) 시스템에 따라 데이터형의 크기가 다를 수 있다는 점은 , 한 환경에서 다른 환경으로 프로그램을 가져갈 때 문제를 일으킬 수 있다 . sizeof() 연산자는 데이터형의 크기가 중요시 되는 프로그램에서 유용하게 사용될 수 있다 .

Explicit type conversionExplicit type conversion

30

Page 31: Introduction to the C Language Structure of a C Program

서강대학교 컴퓨터 공학과

2014. 2 학기 C 언어

StatementsStatements ▪ 프로그램에 의해서 수행되는 하나의 동작 (action)

▪ 직접적으로 하나 또는 그 이상의 실행 가능한 컴퓨터 명령어로 변환됨▪Statement 의 종류 ▫ Null statement ▫ ; statement 가 있어야 하지만 아무런 동작도 필요하지 않을 경우 사용 ▫ loop 등에서 유용하게 사용 예 ) for( ; ; )

▫ Expression statements

▫ 표현식 뒤에 세미콜론 (;) 을 붙여 statement 로 변환 ▫ ‘;’ 는 컴퓨터에게 statement 의 끝임을 나타냄

▫ Compound statements ▫ 0 (zero) 또는 그 이상의 문장으로 구성되는 코드 단위 : Block

▫ main 함수를 만들 때도 compound statements

사용 ▫ 세미콜론 (;) 이 필요하지 않음

31