28
Chapter 02 기본 자료형과 형 변환

Chapter 02 기본자료형과형변환cs.kangwon.ac.kr/~parkce/course/2019_spring_computer_programming_rsc/ch02.pdf영문대문자와소문자(A~Z, a~z), 숫자(0~9), 밑줄( _ )을함한

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Chapter 02 기본 자료형과 형 변환

01 키워드와 식별자

02 상수와 변수

03 기본 자료형

04 형 변환

• C 프로그래밍에서 표현할 수 있는 자료형을 알아본다.

• 다양한 자료형을 통해 표현하고자 하는 데이터를 정확하게

프로그래밍한다.

1.1 키워드

키워드

고유한 의미를 지닌 예약된 단어

예약어(reserved word)라고 부르기도 함.

Page 4

1.2 식별자

식별자(identifier)

사용자가 필요에 따라 이름을 만들어 사용하는 단어

대표적으로 변수명이나 함수명 등이 해당됨.

식별자 작성 규칙

영문 대문자와 소문자(A~Z, a~z), 숫자(0~9), 밑줄( _ )을 포함한 63개의 문자로

만 구성

첫 글자로 숫자를 사용할 수 없음.

대문자와 소문자를 구별하며, 키워드를 사용할 수 없음.

Page 5

1.2 식별자

식별자의 예

올바른 예 : data7, _data, _score, iValue, m_7Name, SEOUL

잘못된 예 : 1data, -data, int, _@mail, #count, double

Page 6

2.1 상수

상수(constant)

프로그램이 실행되어 끝날 때까지 값이 변하지 않는 자료

문자 1개는 ‘ ’ 를 사용해서 표현하고 문자열은 “ ” 를 사용해서 표현

기호 상수는 전처리문인 #define을 이용하여 상수명과 값을 지정한 후 사용

Page 7

2.2 변수

변수(variable)

프로그램에서 자료 값을 임시로 저장하는 장소

값이 계속 변할 수 있음.

변수 선언

이름이 age인 정수형 변수 1개를 선언한다는 의미

주기억장치에 age라는 정수형 크기의 메모리가 할당

Page 8

int age;자료형 변수명;

2.2 변수

변수의 초기화

선언된 변수에 처음으로 값을 저장하는 것

초깃값이 저장되기 전에는 사용자가 알 수 없는 무의미한 값(dummy)이 저장됨.

변숫값을 바꾸는 방법

Page 9

int age = 20;age = 22;

2.2 변수

변수의 동시 선언

동일한 자료형의 변수를 여러 개 사용해야 할 때 동시에 선언

Page 10

2.2 변수

Page 11

01 #include <stdio.h>0203 int main(void)04 {05 int num1 = 10, num2 = 5;0607 printf("num1의 초깃값은 %d이다.\n", num1);08 printf("num2의 초깃값은 %d이다.\n", num2);0910 // num2의 값에 새로운 정숫값을 저장한다.11 num2 = 20;12 // num1의 값에 새로운 정숫값을 저장한다.13 num1 = 30;1415 printf("num1의 새로운 값은 %d이다.\n", num1);16 printf("num2의 새로운 값은 %d이다.\n", num2);17 return 0;18 }

3. 기본 자료형

자료형

프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할

지를 컴파일러에 알려줌.

Page 12

3.1 정수형

정수형

소수점이 없는 숫자

정수형 상수에는 양수, 0, 음수가 있으며 양수, 음수에 따라 +, - 부호 사용 가능

오버플로(overflow) : 허용 범위를 넘는 값을 변수에 저장할 경우 사용자가 의

도한 값이 아닌 전혀 다른 값이 저장되는 현상

Page 13

3.1 정수형

Page 14

01 #include <stdio.h>02 // pow( ) 함수를 사용하기 위해 <math.h> 파일을 포함한다.03 #include <math.h>0405 int main(void)06 {07 short a, b;08 unsigned short c;0910 a = pow(2, 15) - 1; // 2^15 - 1 = 3276711 b = pow(2, 15); // 2^15 = 3276812 c = pow(2, 15);1314 printf("a의 값은 %d이다.\n", a);15 printf("b의 값은 %d이다.\n", b);16 printf("c의 값은 %d이다.\n", c);1718 return 0;19 }

3.2 실수형

실수형

소수점이나 지수가 있는 수를 의미

기본형은 double

실수를 출력할 때 변환 기호 : float인 경우 %f

Double인 경우 %lf

Page 15

3.2 실수형

Page 16

01 #include <stdio.h>0203 int main(void)04 {05 float a = 12.34;06 double b = 56.78;0708 printf("float형 a의 값은 %f이다.\n", a);09 printf("double형 b의 값은 %lf이다.\n", b);1011 // 소수점 자릿수를 조정하면12 printf("소수점 자릿수를 조정한 후의 값\n");13 printf("float형 a의 값은 %.2f이다.\n", a);14 printf("double형 b의 값은 %.3lf이다.\n", b);1516 return 0;17 }

3.2 실수형

정수형의 출력값 조정

변환기호 %d 사이에 폭을 나타내는 정수를 넣음.

값은 기본적으로 오른쪽 정렬로 출력

Page 17

3.2 실수형

정수형의 출력값 조정

+는 출력 시 부호와 값이 함께 출력

-는 출력되는 값을 왼쪽으로 정렬

Page 18

3.2 실수형

실수형의 출력값 조정

출력 폭은 정수형과 작성 방법 동일

소수점 다음 자릿수 추가로 표시 가능(아무 표시가 없으면 기본적으로 소수점

다음 여섯 자리까지 출력)

Page 19

3.2 실수형

Page 20

01 #include <stdio.h>0203 int main(void)04 {05 int a = 20;06 float b = 5.05F, c = 12000.149F;0708 printf("정수형의 다양한 출력 형태\n\n");0910 printf("1)%d\n\n", a);11 printf("2)%6d\n\n", a);12 printf("3)%+6d\n\n", a);13 printf("4)%-6d\n\n", a);1415 printf("실수형의 다양한 출력 형태\n\n");1617 printf("1)%f\n\n", b);18 printf("2)%6.1f\n\n", b);19 printf("3)%+6.1f\n\n", b);20 printf("4)%6f\n\n", c);2122 return 0;23 }

3.3 문자형

문자형

문자 1개를 작은따옴표( ‘ ’ ) 안에 넣어서 사용하는 자료형

작은따옴표 안에 있는 문자를 데이터 1개로 취급하며, 8비트(1바이트)로 처리

내부적인 문자 코드(아스키ASCII나 EBCDIC 코드)에 상응하는 숫자로 바꿔 기억

자료형은 char이고, 0~127의 부호 없는 정수에 문자를 정의

Page 21

3.3 문자형

C 언어에서 다루는 문자

아스키코드 표에는 숫자로 표현

Page 22

3.3 문자형

아스키 코드

Dec : 정수 표현

Hex : 16진수 표현

Page 23

3.3 문자형

Page 24

01 #include <stdio.h>0203 int main(void)04 {05 printf("소문자 a의 ASCII 값은 %d이다.\n", 'a');06 printf("소문자 b의 ASCII 값은 %d이다.\n", 'b');07 printf("대문자 A의 ASCII 값은 %d이다.\n", 'A');08 printf("대문자 B의 ASCII 값은 %d이다.\n\n", 'B');0910 printf("ASCII 97은 %c다.\n", 97);11 printf("ASCII 98은 %c다.\n", 98);12 printf("ASCII 65는 %c다.\n", 65);13 printf("ASCII 66은 %c다.\n", 66);1415 return 0;16 }

4.1 형 변환

형 변환

자료형을 바꾸는 것

묵시적 형 변환과 명시적 형 변환이 있음.

① 묵시적 형 변환

컴파일러가 자동으로 수행

데이터의 값을 잃지 않는 방향으로 이루어짐.

묵시적 형 변환의 예

Page 25

char → short → int → unsigned → long → float → double

int a = 10;float b = 20.05, c;c = a + b; // a = 10.00이 되는데, 이는 정수형이 실수형으로 자동 변환된 것이다.

4.1 형 변환

② 명시적 형 변환

사용자가 강제로 지정

캐스팅 연산자를 사용하여 형 변환

연산식 앞에 ( )를 붙이고 ( ) 안에는 변환하는 자료형을 넣음.

명시적 형 변환의 예

Page 26

float x;float y = 14.66;x = (int) y / 2; // y = 14가 되는데, 이는 실수형이 정수형으로 강제 변환된 것.

4.1 형 변환

Page 27

01 #include <stdio.h>0203 int main(void)04 {05 int a = 10, b = 20, c;06 float d = 5.6, e = 8.4, f;0708 c = d + e;09 printf("c = d + e의 연산결과는 %.2f이다.\n", (float)c);1011 f = d + e;12 printf("f = d + e의 연산결과는 %.2f이다.\n", f);1314 f = d + (int)e;15 printf("f = d + (int)e의 연산결과는 %.2f이다.\n", f);1617 return 0;18 }

C로 시작하는컴퓨터 프로그래밍 개정3판

감사합니다.