• 검색 결과가 없습니다.

C 의 기본 구성 요소

N/A
N/A
Protected

Academic year: 2022

Share "C 의 기본 구성 요소"

Copied!
17
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

C의 기본 구성 요소

토큰 및 기본자료형(1)

Chan-Su Shin

(2)

문자 (character)

문자 세트(Character Set)

알파벳 소문자 a b c d … x y z

알파벳 대문자 A B C D … X Y Z

숫자 0 1 2 3 4 5 6 7 8 9

특수문자

+ - * / = ( ) { } [ ] < > ‘ “ ! @ # $ % & _ | \ . , ; : ?

\space \n \t \r \b \a \’ \” \? \0

(3)

토큰 (token)

문자 집합에 있는 하나 이상의 문자들로 이루어진 C에서 의미를 가지는 단어(word)

키워드 (keyword) 식별자 (identifier) 상수 (constant)

문자열 상수 (string constant) 연산자 (operator)

구두점 (punctuation)

(4)

키워드 (keyword)

C 언어에서 고유한 의미를 가지는 예약된 토큰

키워드는 다른 의미로 사용될 수 없다. (다른 변수, 함수의 이름으로 사용불가)

auto do goto signed unsigned

break double if sizeof void

case else int static violate

char enum long struct while

const extern register switch continue float return typedef default for short union

(5)

식별자(identifier)

알파벳, 숫자, underscore _ 로만 이루어진 토큰

변수 이름, 상수 이름, 함수 이름 등으로 사용할 수 있다.

_ 로 시작하는 식별자는 C 언어에서 사용하는 식별자와 충돌할 수 있다.

잘못된 식별자는 컴파일 과정에서 에러로 출력된다.

숫자가 처음에 오면 안된다.

올바른 식별자 잘못된 식별자

kingkong _my_id Iwill#you 2paradise I_am_sorry Love4you -plus You babo?

(6)

상수(constant)

숫자 상수 (number constant)

정수 상수 0, 125, 56892001987 (-777) 실수 상수 3.141569, 1.414, 37.5

10, 010, 0x10 (10진법, 8진법, 16진법, 출력시: %d, %o, %x 사용)

문자 상수 ‘A’, ‘c’, ‘1’, ‘+’,

(그러면 작은따옴표는?)

문자열 상수 (string constant)

한 쌍의 큰 따옴표 (“)에 의해 묶인 문자 집합에 속하는 문자들로 구성된 상수

“C language?” 9개의 알파벳, 1개의 공백, 1개의 특수문자 (물음표)로 구성된 문자열 상수

“” Null 문자열 상수

“ ” 6개의 공백으로 구성된 문자열 상수

“a = b * 2 \” ” 3개의 알파벳, 1개의 숫자, 6개의 공백, 3개의 특수문자로 구성된 문자열 상수

(7)

기본 자료형

Chan-Su Shin

(8)

컴퓨터에서의 모든 정보는 2진수의 형태로 변환되어 저장됨

D진수

0부터 D – 1까지의 수로 세는 방법 8진수: 0 ~ 7

16진수: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, __, __, __, __, __, __

10진수  2진수, 8진수, 16진수

45 

2진수  10진수

01011011

2진수  8진수, 16진수

진수와 진수변환

(9)

printf(“십진수 = %d\n”, 45);

printf(“8진수 = %d\n”, 055); // 0을 붙인 상수는 8진수로 간주

printf(“16진수 = %d\n”, 0x2D); // 0x를 붙인 상수는 16진수로 간주

%d, %o, %x 사용하면 10진수, 8진수, 16진수 형태로 출력 가능

28을 2진수, 8진수, 16진수로 나타내면?

C에서의 진수표현 (예: 45)

(10)

특정 정보를 컴퓨터에 저장하기 위해선,

정보가 저장되는 장소(변수의 이름)와 정보의 종류가 명확히 정의되어야 함.

변수는 그러한 정보를 저장하기 위한 container(박스)

모든 변수는 사용하기 전에 선언되어야 함.

int a;

1. Compiler에게 변수의 이름이 a이고,

2. 정수 값을 담기 위한 저장공간(4byte)을 메모리에 할당하라는 의미

int a = 5; (선언과 초기값 설정을 동시에)

변수 (variable)

a

5

(11)

변수 이름

올바른 식별자이어야 한다.

알파벳 (a – z, A – Z), 숫자 (0 – 9), __ (underscore)만으로 구성된 문자열로 정의된다.

숫자가 첫번째에 올 수 없다.

대문자와 소문자는 구별된다.

하나의 underscore나 두 개의 연속된 underscore로 시작하는 변수는 컴파일러에 의해 예약된 경우가 많다. (그러므로 가능하면 피해야 한다.)

키워드는 변수의 이름으로 사용할 수 없다.

변수의 길이는 원칙적으로 제한이 없다. 그러나 처음 31개의 문자만을 변수의 이름으로 지정한다. (ANSI C)

int abcdefghijklmnopqrstuvwxyzabcd_aaaa;

int abcdefghijklmnopqrstuvwxyzabcd_bbbb;

ANSI C에서는 두 변수는 같은 변수로 인식되어 컴파일할 때 에러가 발생한다.

C++에서는 모든 문자를 비교하여 변수의 이름을 구별한다.

(12)

기본 자료 형 (data types)

정수형

char signed char

unsigned char

short int long

unsigned

short unsigned unsigned long

부동형

float double long

double

(13)

문자와 char 자료형

문자

`a’, `+’, `%’, `Z’, `2’

char 자료형

문자를 저장할 수 있는 자료형으로 내부적으론 int 자료형으로 간주됨 char x; x = `a’; printf(“ This is %c\n”, x); // printf(“%d\n”, x); 라면?

1 byte (8 bits)의 기억공간이 할당되어 256개의 문자를 표현 할 수 있음

ASCII 코드

0 1 0 0 1 1 1 0

(14)

ASCII 코드 (일반문자)

`a’

97

`b’

98

`c’

99 - - - `z’

122

`A’

65

`B’

66

`C’

67 - - - `Z’

90

`0’

48

`1’

49

`2’

50 - - - `9’

57

`&’

38

`*’

42

`+’

43 - - -

(15)

\로 시작함

두 개의 문자가 하나의 특수문자를 나타냄

\\ = \92 = \0232 = \x5c

ASCII 코드 (특수문자)

경고

`\a’

7

역슬래시

`\\’

92

백스페이스

`\b’

8

캐리지 리턴

`\r’

13

큰 따옴표

`\”’

34

폼피드

`\f’

12

수평탭

`\t’

9

개행

`\n’

10

널 문자

`\0’

0

작은따옴표

`\’’

39

(16)

예제

printf ( “ %c \n”, `\a’);

printf (“ %c %c %d\n”, `a’, `a’+1, `a’+2);

printf (“ \” abc \’ \n”);

printf(“ %c %c %c\n”, `\7’, `\07’, `\x7’);

(17)

signed vs. unsigned char

unsigned char x

x는 양수 문자 값만을 저장한다. 그래서 0부터 255 까지 저장 가능

signed char x

x는 음수와 양수로 문자 값을 저장 -128, -127, …, -1, 0, 1, …, 126, 127

방법1: MSB = 0이면 양수, 1이면 음수로 표현 (덧셈 문제? +3 + (-3) = ?) 방법2: 음수는 양수의 2의 보수로 표현 (1의 보수 + 1)

(1) 0의 표현은? (2) 10000000은 얼마?

(3) 왜 양수는 127이 최대고, 음수는 -128이 최소인가?

char x

컴파일러에 따라 signed 일 수도 있고 unsigned 일 수도 있음

0 1 0 0 1 1 1 0

MSB

참조

관련 문서

뇌졸중 후 초기부터 죽은 뇌세포 주위의 세포들이 기능을 대신 하는 등의 다양한 기전을 통하여 마비 등의 후유증이 점차 좋 아지므로, 초기부터 다양한

[r]

○ In the case of returning students who have not applied for return to school after paying tuition fees, it is written only in the temporary attendance register as a student on

aqueous hydrochloric acid (10 mL) was heated under reflux for 4 h and then concen- tration of the reaction mixture in vacuo afforded undecane- dioic acid 10 (46.0 mg, 79%) as

and an improvement set of extragradient-type iteration methods in [5], we in- troduce new iteration algorithms for finding a common of the solution set of an equilibrium problem

② 전역 변수가 선언된 소스 파일의 헤더 파일에 전역 변수에 대한 extern 선 언을 넣어준다. 전역 변수의 extern 선언은 메모리를 할당하지

기본 음절 구조. 기본

(Venture Merging) 전략적 필요에 의해 벤처기업을 흡수 · 합병하여 자회사나 하나의 사업부로 운영하는 경우.. 내부벤처