Chapter 3 : 기본 자료형 및 문자열(전반부)

Download Report

Transcript Chapter 3 : 기본 자료형 및 문자열(전반부)

C Programming Language
Chap 3. 기본 자료형 및 문자열
C언어 및 실습
C Language and Practice
Chap 3. 기본 자료형 및 문자열 : 전반부
숫자와 문자
숫자( 정수, 실수)
정수(정수형 수) : 소수점이 없는 수 0, 1, .., 18, 7, 29
정수형(integer : int )의 저장 크기: 4바이트
정수형변수(a) : 정수를 저장하는 저장장소 이름 선언 int a; int a = 7;
실수(실수형 수) : 수숫점을 가진 수 8.3, 4.0, 9.333
실수형( float) 의 저장 크기: 4바이트
배정도 실수형( double) 의 저장 크기: 8바이트
실수형변수 (b): 실수을 저장하는 저장장소 이름 선언
float b; float b = 3.4;
double b; double b = 39.3334;
문자(문자, 문자열)
문자 : 문자 든 숫자든 한자리 단어 ‘A’, ‘1’ (문자 양 옆에 단일인용부호사용)
문자형(character : char) 의 저장크기 : 1바이트
문자형변수선언(c) : 하나의 문자를 저장하는 저장장소 이름 선언 char c; char c = ‘A’
WONKWANG UNIVERSITY
Dept. of Computer Engineering
문자열 : 하나 또는 그 이상의 문자 또는 숫자들 “A”, “abc”. “123” (문자(들) 양옆에 이중인용부호사용)
문자열형의 저장 크기: 문자수+ 1 바이트
문자열 선언 (d): 하나 또는 그 이상의 문자를 저장하는 저장장소(배열) 이름 선언
char d[10];
char d[10] = “abc”
1
C Programming Language
Chap 3. 기본 자료형 및 문자열
단원의 학습목표
1. C가 사용하는 기본적인 자료형인 정수형과 부동소수형의
차이점을 파악한다.
2. 기본 자료형으로 상수나 변수를 선언하는 방법을 알아본
다.
3. 서로 다른 자료형에 대한 형 변환 규칙과 변환 과정을 이
해한다.
단원의 개요
학습 유의점
1. 기본 자료형의 기억장소 내의 형태를 이해하
여 각 자료의 사용용도 및 범위를 스스로 파악
한다.
2. 문자형의 경우 문자형 상수와 문자열과의 구
분을 명확히 한다.
3. 개행문자의 이해를 위해 프로그램 작성시 이
들의 기능을 첨가하여 실행해 본다.
단원의 학습계획
사용된 함수
1. 정수형과 실수형의 정수형과 실수형 자료의 기억장소 형태
상수와 변수
를 이해한다.
정수형(int / short / long / unsign)과
실수형(float / double)의 상수와 변수
들의 차이점을 파악한다.
2. 형 변환 및 규칙
형 변환의 우선순위를 이해한다.
3. 개행문자(확장열) 개행문자의 개념을 정확하게 이해하고,
특히, 한 문자에 해당된다는 것을 숙지
한다.
연산자 : cast
형 식 : (형 명칭)수식 : 34pp
sizeof
: 42pp
형 식 : int sizeof(형 명칭 | 수식)
함 수 : printf( )
: 1장-23pp
형 식 : printf(“형식문자열”, 인수);
scanf( )
:45pp
형 식 : scanf(“형식문자열”, 인수);
scanf(“형식문자열”, &인수);
WONKWANG UNIVERSITY
Dept. of Computer Engineering
2
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본 출력문: prinf( ) : 컴퓨터화면에 출력하시오.
 printf()
 여러 가지 형식화된 내용을
표준출력(stdout, 화면) 으로 출력하는 함수
 printf() 함수의 일반 형식
형 식 : printf(“형식 문자열”, 인수)
하는일 : 인수의 값을 화면에 원하는 형식으로 출력
형식 문자열 : 단순문자, 변환(서식)문자, 개행문자들로 구성
인수(인자) : 변환(서식)문자로 변환할 변수
예 : printf("%d %f %e %c \n", i, f, d, c);
 변환(서식) 문자 의 종류
변환(서식)문자
(= 형식지정자)
#include <stdio.h>
void main()
{
int a = 65; // 정수형변수 선언 및 변수값 초기화
printf("부호있는10진수
정수= %d \n", a);
printf("부호없는 8진수
정수= %o \n", a);
printf("부호없는 16진수 정수= %x \n", a );
float b =65.0; // 실수형변수 선언 및 변수값초기화
printf("부동소수점형
실수= %f \n", b);
printf("부동소수점형E표기
실수= %e \n", b);
printf("부동소수점형f.e중 짧은 실수= %e \n", b);
printf("문자
= %c \n", a);
char array[5] = {"ABCD"}; // 문자열변수선언및초기화
printf("문자열
= %s \n",array);
}
의 미
%d
부호있는 10진수 정수(decimal)
%o
부호없는 8진수 정수(octal)
%x or %X
부호없는 16진수 정수(Hexadecimal)
%f
부동 소수점형 소수점 형태(float)
%e or %E
부동 소수점형 E 또는 e표기법(exponential)
%g or %G
f 또는 e중에서 짧은 형태를 선택
%c
1개 문자 출력(character)
%s
WONKWANG UNIVERSITY문자열(string)
Dept. of Computer Engineering
3
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형
 프로그램에서 사용되는 기본적인 자료
 상수[常數] - 변하지 않는 값
 변수[變數] - 프로그램 실행 시 다른 값으로 변할 수 있음
int
int
int
int
1(상수) -3(상수)
a; // 정수형(int) 변수a 선언
b; // 정수형 변수b 선언
c = 2007;// 정수형 변수c에 상수2007을 저장(=대입)
d = 302; // 정수형 변수d에 상수302을 대입(초기화)
a = 1; // 정수형 변수a에 상수1을 대입(초기화)
a = -3; // 정수형 변수a에 상수-3을 대입(초기화)
// 정수형 변수a에 저장된 1위에 -3이덮어 씌워짐
-3
i nt
2007
i nt
WONKWANG UNIVERSITY
Dept. of Computer Engineering
i nt
A(변수)
B(변수)
302
i nt
C(변수)
D(변수)
4
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형
 프로그램에서 사용되는 기본적인 자료
 상수 - 변하지 않는 값( = 자료[data] )
 변수 - 프로그램 실행 시 다른 값으로 변할 수 있음
int
int
int
int
a;
b;
c = 2007;
d = 302;
1
-3
-3
1
i nt
a
i nt
b
a = 1;
a = -3;
#include <stdio.h>
void main()
{
int a;
// a는 정수형(int) 변수
int b;
// b는 변수
int c = 2007; // c는 변수, 2007은 상수, c에 2007 이 저장(=대입)
int d = 302;
// d는 변수, 302는상수, d에 302를 대입
a = 1;
// 변수a에 상수 1을 대입
b = 2;
// 변수 b에 상수 2를 대입
a = -3;
// 변수b에상수 -3을 대입
printf("각 변수 a,b,c,d 에 저장된 값은 ? \n");
printf(" aWONKWANG
= %d \n b = %d UNIVERSITY
\n c = %d \n d = %d \n", a,b,c,d);
}
Dept. of Computer Engineering
2007
i nt
302
c
i nt
d
5
C Programming Language
Chap 3. 기본 자료형 및 문자열
참고1. ASCII코드

ASCII 코드
 American Standard Code for Information
Interchange
 미국표준협회(ANSI)에서 제정한 정보교환용
미국표준부호
 문자, 숫자, 특수문자에 수치 값(numeric
Value)을 부여한 부호체계
 각 숫자 , 문자 또는 기호는 1 바이트로 표현
 C언어에서 문자 및 특수문자 표현에 사용됨
 십진수(decimal : DEC), 16진수(hexa
decimal:HEX), 8진수(octal :OCT), 이진수
(binary)
WONKWANG UNIVERSITY
Dept. of Computer Engineering
6
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본 자료형(data type)
 5가지 기본 자료형
값이 없음
- void
(2)배정도 실수(실수형)
- double(8bytes)
문자데이터(문자형)
- char(8bits)
5가지
기본 자료형
부호 있는 정수(정수형)
- int(4bytes)
실수(실수형)
- float(4bytes)
WONKWANG UNIVERSITY
Dept. of Computer Engineering
7
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-문자형
 5가지 기본 자료형
문자형
-하나의 문자를 표현하는 형
-ASCII 코드표를 이용해 저장
-8bits 크기로 저장
// 문자형(char) 자료형
char a;
5가지
기본 자료형
a = ‘A’;
A
#include <stdio.h>
void main()
{
char a;
// a는 하나의문자가 들어갈 문자형 변수 선언
a = 'A';
// 문자형 변수a에 문자 ‘A’를 대입(저장)
printf("문자변수 a에 저장된 값은 %c 이다\n", a);
printf("문자변수 a의 ASCII 코드값은 %d 이다\n",
a);
}
cha
r
a
0
0
1
0
0
0
0
0
0
1
7
6
5
4
3
2
1
0
1Byte(8bits)
WONKWANG UNIVERSITY
Dept. of Computer Engineering
문자 A코드 값은 십진수로 65이며고 16진수는 41이고
이진수로는 01000001이다
8
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-문자형
 5가지 기본 자료형
문자형
-하나의 문자를 표현하는 형
-ASCII 코드표를 이용해 저장
-8bit 크기로 저장
char a;
5가지
기본 자료형
a = ‘A’;
/*십진수[decimal]
cha
65 */
A
a
r
0
1
0
0
0
0
0
1
7
6
5
4
3
2
1
0
1Byte(8bits)
WONKWANG UNIVERSITY
Dept. of Computer Engineering
9
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-정수형
 5가지 기본 자료형
정수형
-정수값을 표현하는 형
-정수의 크기에 따라 2bytes / 4bytes 선택가능
☞ short -> 2bytes
☞ int
-> 2bytes 또는 4 bytes
☞ long -> 4bytes
-int 형의 크기는 시스템 종속적
☞ 16bit OS -> 2bytes / 32bit OS -> 4bytes
-필요에 따라 양수만 표현 가능
5가지
기본 자료형
65
int a;
a = 65;
0
31
······
i nt
a
0
0
1
0
0
0
0
0
0
1
0
8
7
6
5
4
3
2
1
0
2Bytes or 4 Bytes
WONKWANG UNIVERSITY
Dept. of Computer Engineering
10
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-정수형
// 정수형(int) 자료형
#include <stdio.h>
void main()
{
short s; // s는 정수가 들어갈 2 바이트크기의 정수형변수
int a;
// a는 정수가 들어갈 4 바이트크기의 정수형변수
long b; // b는 정수가 들어갈 4 바이트크기의 정수형변수
s = 65; // 정수형변수 s에 정수65 대입(저장)
a = 64; // 정수형변수 a에 정수64 대입
b = 63; // 정수형변수 b에 정수63 대입
printf(" short-정수형변수s= %d 바이트\n int- 정수형변수a= %d 바이트\n
long- 정수형변수b= %d 바이트\n\n", sizeof(s), sizeof(a), sizeof(b));
printf(" short-정수형변수 s에저장된 값은%d 이다\n", s);
printf(" int- 정수형변수 a에저장된 값은%d 이다\n", a);
printf(" long- 정수형변수 b에저장된 값은%d 이다\n", b);
}
WONKWANG UNIVERSITY
Dept. of Computer Engineering
11
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-실수형
 5가지 기본 자료형
실수형/배정도 실수형
-소수점이 존재하는 수치를 표현하는 형
-실수의 크기에 따라 float / double /
long double 선택
☞ float 형 -> 4bytes
☞ double 형 -> 8bytes
☞ long double 형 -> 8bytes 또는 10bytes
31.41592
flaot a;
a = 31.41592;
☞
0 ········ 6
31.41592
= 0.3141592ⅹ102
= 0.314159E2
+2
314159
floa
t a
9 ········ 31
+
4 Bytes
WONKWANG UNIVERSITY
Dept. of Computer Engineering
12
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-실수형
// 실수형(float, double) 자료형
#include <stdio.h>
void main(){
float a;
double d;
long double ld;
a = 31.41592;
d = 31.41592;
ld = 31.41592;
// a는실수가 들어갈4 바이트크기의실수형변수
// d는배정도실수들어갈8 바이트크기의실수형변수
// a는배배정도실수가들어갈8 또는 바이트크기의실수변수
// 실수형변수a에31.41592가 저장됨
// 배정도실수형변수d에31.41592가 저장됨
// 배배정도형실수형변수ld에31.41592가 저장됨
printf(" 실수형변수a = %d 바이트\n 배정도실수형변수d = %d 바이트
\n 배배정도실수형변수ld= %d 바이트\n\n", sizeof(a), sizeof(d), sizeof(ld));
printf(" 실수형변수a에 저장된 값은%f 이다\n", a);
printf(" 배정도실수형변수d에 저장된 값은%f 이다\n", d);
printf(" 배배정도실수형변수ld에 저장된 값은%f 이다\n", ld);
}
WONKWANG UNIVERSITY
Dept. of Computer Engineering
13
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형- 형없음(Void)
 5가지 기본 자료형
Void형(형없음)
-특수한 형태로 타입이 존재하지 않음을 의미
-주로 함수의 리턴 타입을 정의할 때 사용
ex) void main()
☞ 함수가 종료될 떄 값을 전달하지 않음
5가지
기본 자료형
WONKWANG UNIVERSITY
Dept. of Computer Engineering
14
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 –singed, unsigned
 5가지 기본 자료형
// sizeof( )함수를 이용한 자료형의 크기를 알아본다
#include <stdio.h>
자료형(type)
의미
자료크기(32bits
word -Machine )
Character(문자형)
Integer(정수형)
Float(실수형)
Double(배정도실수형)
Void
문자데이터
부호 있는 정수
실수
배정도 실수
값이 없음
char(8bits)
int(4bytes)
float(4bytes)
double(8bytes)
void
void main()
{
printf(" 문자형[char]변수의 크기= %d 바이트\n", sizeof(char));
printf(" 정수형[int]변수의 크기= %d 바이트\n", sizeof(int));
printf(" 실수형[float]변수의 크기= %d 바이트\n", sizeof(float));
printf(" 배정도실수형[double]변수의 크기= %d 바이트\n",
sizeof(double));
}
 자료형 수정자(type modifier)
 char, int, float, double을 좀 더 적합한 형태로 수정
 signed : 양수와 음수의 표현이 가능, signed char와 signed int 에 사용, 디폴트
 unsigned : 양수만 표현 가능, unsigned char, unsigned int( = unsigned)에 사용
 short : int에 사용( short int (=short))
 long : int, double에 사용( long int(=long), long double )
 즉, unsigned, short, long 뒤에 정수형 자료형 int 는 생략 할 수 있다.
 예) long int k; 
long k;
WONKWANG UNIVERSITY
Dept. of Computer Engineering
15
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형(int,long.short,char,float,double, singed, unsigned)
 변수의 자료형과 저장된 값의 범위
unsigned int
(10^-38 ~ 10^38)
15
(10^-308 ~ 10^308)
그림 3-1 C 자료형의 크기와 표현 범위
자 료
int
long
short
unsigned
char
float
double
1워드 = 16
비트인 컴퓨터
16비트
32비트
16비트
16비트
8비트
32비트
64비트
1워드 = 32
비트인 컴퓨터
32비트
32비트
16비트
32비트
8비트
32비트
64비트
값의 범위
short 또는 long
-2,147,483,648 ~ 2,147,483,647
-32,768 ~ 32,767
0 ~ 65,535, 0~4294967295
256 characters
10-38 ~ 1038
10-308 ~ 10308
C 언어에서의 기본적인 자료형과 저장된 값의 범위
WONKWANG UNIVERSITY
Dept. of Computer Engineering
16
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형- 정수형
 정수형(int)
 C언어에서 표현 가능한 정수형 상수
 10진수(O), 8진수(O), 16진수(O). 2진수(X).
값
5
10
10진수
5
10
8진수
16진수
long int
상수
2진수
05
012
0X5
0Xa
5L
10L
사용하지
않음
 소수점이 없는 정수값을 가짐( 2(O),3(O) -4(O), 3.0(X))
 정수형 변수 선언의 일반 형식
int 변수명1[, ... , 변수명n];
혹은
int 변수명1=초기값[, ... , 변수명n=초기값];
WONKWANG UNIVERSITY
Dept. of Computer Engineering
int
int
int
int
a;
a, b, c;
i, j, k;
p=2, m=3;
17
// 정수형 변수선언 예
#include
<stdio.h>
C
Programming
Language
void main()
{
int a;
int a, b, c;
int i, j, k;
int p=2, m=3;
Chap 3. 기본 자료형 및 문자열
기본자료형-정수형
 정수형(int)
short p;
long i;
long k;
unsigned m;
:
}
 정수형 변수
 정수형 변수 선언의 예
 정수형 선언에서 예약어 int는 short, long, unsigned와 함께 사용할 수 있으
며, 이 경우 int는 생략 가능
int
int
int
int
a;
a, b, c;
i, j, k;
p=2, m=3;
short [int] p;
long [int] i;
long k;
unsigned [int] m;
 unsigned [int]로 선언된 변수는 첫 번째 비트를 부호 비트로 사용하지 않고
자료 비트로 사용( 32비트머신의 인경우 1비트의 부호와 31비트의 정수표현).
 변수값이 모두 양수를 갖는 경우 사용
 32비트가 1워드인 컴퓨터에서의 값의 표현범위
int i;
unsigned [int] m;
-230 ≤ i ≤ 230-1
0 ≤ i ≤ 231-1
※ 주의: int로 선언된 정수형 변수의 크기는 기종에 따라 서로 차이가 있음
WONKWANG UNIVERSITY
Dept. of Computer Engineering
18
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-정수형
 정수형(int)
int
-2,147,483,648 ~ 2,147,483,647
 예제 1
 정수형변수(k)가 가질 수 있는 최대값을 초기값으로 저장하고 난 뒤에 1과 2를
차례로 더하는 프로그램[ K+1일때 어떤일이 발생하는지 ? ] 오버플로우
#include <stdio.h>
main()
{
int k= 2147483647;
printf("k= %d
k+1=%d
k+2=%d\n", k, k+1, k+2);
}
 실행결과
: 선언된 정수형 변수에 저장되는 값이
최대크기 값인 2,147,483,647 을 초과하면 오버프로우(overflow), 이고
-2,147,483,648보다 작아지면 언더플로우(under flow)이다.
WONKWANG UNIVERSITY
Dept. of Computer Engineering
19
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-정수형
 정수형(int)
 예제 2
 정수형변수(K,i)에 저장된 초기값을 읽어 몫(/)과 나머지(%)를 구하는 프로그램
#include <stdio.h>
main()
{
int k=87, i=5;
printf(" %d
/
printf(" %d %%
%d = %d\n", k, i, k/i);
%d = %d\n", k, i, k%i);
// 몫 = K/i
// 실수형변수를 이용한 나머지 연산 K%i은
불가능.
}
 변환문자 참조
변환(서식)문자
%d
%o
%x or %X
%f
의 미
부호있는 10진수 정수
부호없는 8진수 정수
부호없는 16진수 정수
부동 소수점형 소수점 형태
WONKWANG UNIVERSITY
Dept. of Computer Engineering
변환(서식)문자
%e or %E
%g or %G
%c
%s
의 미
부동 소수점형 E 또는 e표기법
f 또는 e중에서 짧은 형태를 선택
1개 문자 출력
문자열
20
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-실수형
 실수형(float)
 오직 10진수만을 사용하며, 지수 부분은 e 혹은 E를 써서 표시
 자료의 값은 실수값이며, 지수 부분(Exponential part)과 소수 부분(Fraction
part)으로 나뉘어 저장됨
 예) IBM PC/AT에서 31.14592를 기억시킨 기억 장소의 형태
 31.41592 = 0.3141592 ⅹ 102 = 0.314159E2
6 7
0
2
지수부분
8
+
부호
31
314159
소수부분
 실수형 변수 선언의 일반 형식
float 변수명1[, ... , 변수명n];
float 변수명1=초기값[, ... , 변수명n =초기값];
WONKWANG UNIVERSITY
Dept. of Computer Engineering
float
float
float
float
i;
m,n;
p= 3.141592;
k= 0.12345e3;
21
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-실수형
 실수형(float)
 실수형 변수
 실수형 변수 선언의 예
float
float
float
float
i;
m, n;
p= 3.141592;
k= 0.12345e3;
// float p = 0.141592e1
// float k = 123.45
 보통 실수형은 32비트 정도로 수를 표현하기 때문에 매우 큰 수와 매우 작은
수를 표시할 때에는 오차가 발생할 수 있음
 오차를 줄이려면 64비트 정도로 수를 표현하는 배정도형(double precision)
을 사용
WONKWANG UNIVERSITY
Dept. of Computer Engineering
22
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-실수형
 실수형(float)
 예제 3
 정수형과 실수형의 계산의 차이점을 보이기 위한 프로그램
#include <stdio.h>
main()
{
int i, j, k;
float f;
i=7;
j=9;
k=i/j;
f=(float)i/(float)j;
printf("i=%d
j=%d
/* 정수형 계산 k = 7 / 9
*/
/* 실수형 계산 f = 7.0/9.0 */
(int)i/j=%d
(float)i/j=%f \n", i, j, k, f);
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
23
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-실수형
 실수형(float)
 예제 4
 실수형 변수에 실수값을 기억시켜 출력하는 프로그램
#include <stdio.h>
main()
{
float a=3.5, b=4.0;
printf(“a= %f
b= %f\n”, a, b);
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
24
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-문자형
 문자형(char)
 문자를 문자열(string)이나 명칭이 아닌 하나의 문자 상수(character constant)
로 취급할 경우는 단일 인용 부호(
‘ ’)로 묶어야 함
 문자형 변수는 영문자, 숫자, 특수 문자 등을 값으로 가질 수 있음
 예) ‘A’, ‘b’, ‘7’, ‘$’ ... 등
 문자형 변수 선언의 일반 형식
char 변수명1[, ... , 변수명n];
char i;
혹은
char a, b, c;
char 변수명1=‘1개의 문자’[, ... , 변수명n=‘1개의 문자’]; char a=‘X’, b=‘y’;
WONKWANG UNIVERSITY
Dept. of Computer Engineering
25
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-문자형
#include <stdio.h>
 문자형(char)
void main()
{
//문자형 변수 및 초기값 선언예
 문자형 변수
 문자형 변수 선언의 예
char i;
char a, b, c;
char a=‘X’, b=‘y’;
char i;
char a, b, c;
char a=‘X’, b=‘y’;
:
}
 C 언어에서 모든 문자형 상수는 그에 대응하는 수치값(코드값)으로 처리
 문자값들의 수치적 비교 뿐만 아니라 연산이 가능
 예) ‘a’<‘b’, ‘a’+9, ‘p’-1
 문자열
 이중 인용 부호(“
”)로 묶인 문자들의 집합
 길이가 가변적이므로 기억장소에 기억시킬 때 문자열의 마지막 문자 뒤에 Null(빈)
문자(‘\0’)를 기입하여 문자열의 끝을 표시
‘P’ :
P
“P” : P
\0
그림 3-2 문자형 상수 ‘P’와 문자열 “P”의 비교
WONKWANG UNIVERSITY
Dept. of Computer Engineering
26
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-문자형
 문자형(char)
 예제 5
 여러 자료형의 변수를 정의하여, 초기값을 대입하고, 화면에 출력하기 위한 프로
그램
#include <stdio.h>
main()
{
int i=32760;
float f=289.4455678389;
double d=4.6543e+10;
char c= 'T';
printf("
%d\n
%f\n
%e\n
%c\n", i, f, d, c);
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
27
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형-문자형
 문자형(char)
 예제 6
 한 개의 문자를 문자형변수에 저장하고 1값을 더하여 결과를 출력하는 프로그램
#include <stdio.h>
#include <stdio.h>
main()
{
void main()
{
// 문자 및 ASCII 값으로의 표현
char a='a';
printf("초기화값인 문자= %c\n", a);
printf("최기화된 문자의ASCII 코드값: %d\n", a);
a = a+1;
printf("1 증가한 문자 = %c\n", a);
printf("1 증가한 문자의 ASCII 코드값: %d\n", a);
}
char a='a';
a = a+1;
printf("
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
%c\n", a);
28
C Programming Language
Chap 3. 기본 자료형 및 문자열
실습
WONKWANG UNIVERSITY
Dept. of Computer Engineering
29
C Programming Language
Chap 3. 기본 자료형 및 문자열
단원의 학습목표
1. C가 사용하는 기본적인 자료형인 정수형과 부동소수형의
차이점을 파악한다.
2. 기본 자료형으로 상수나 변수를 선언하는 방법을 알아본
다.
3. 서로 다른 자료형에 대한 형 변환 규칙과 변환 과정을 이
해한다.
단원의 개요
학습 유의점
1. 기본 자료형의 기억장소 내의 형태를 이해하
여 각 자료의 사용용도 및 범위를 스스로 파악
한다.
2. 문자형의 경우 문자형 상수와 문자열과의 구
분을 명확히 한다.
3. 개행문자의 이해를 위해 프로그램 작성시 이
들의 기능을 첨가하여 실행해 본다.
단원의 학습계획
사용된 함수
1. 정수형과 실수형의 정수형과 실수형 자료의 기억장소 형태
상수와 변수
를 이해한다.
정수형(int / short / long / unsign)과
실수형(float / double)의 상수와 변수
들의 차이점을 파악한다.
2. 형 변환 및 규칙
형 변환의 우선순위를 이해한다.
3. 개행문자(확장열) 개행문자의 개념을 정확하게 이해하고,
특히, 한 문자에 해당된다는 것을 숙지
한다.
연산자 : cast
형 식 : (형 명칭)수식 : 31pp
sizeof
: 40pp
형 식 : int sizeof(형 명칭 | 수식)
함 수 : printf( )
: 1장-23pp
형 식 : printf(“형식문자열”, 인수);
scanf( )
:42pp
형 식 : scanf(“형식문자열”, 인수);
scanf(“형식문자열”, &인수);
WONKWANG UNIVERSITY
Dept. of Computer Engineering
30
C Programming Language
Chap 3. 기본 자료형 및 문자열
표준 출력 함수
 printf()
 여러 가지 형식화된 내용을 표준출력(stdout, 화면) 으로 출력하는 함수
 printf() 함수의 일반 형식
형 식 : printf(“형식 문자열”, 인수)
하는일 : 인수의 값을 화면에 원하는 형식으로 출력
형식 문자열 : 단순문자, 변환(서식)문자, escape문자로 구성
인 자 : 변환(서식)문자로 변환할 변수
 변환 문자의 종류
변환(서식)문자
%d
%o
%x or %X
%f
의 미
부호있는 10진수 정수
부호없는 8진수 정수
부호없는 16진수 정수
부동 소수점형 소수점 형태
WONKWANG UNIVERSITY
Dept. of Computer Engineering
변환(서식)문자
%e or %E
%g or %G
%c
%s
의 미
부동 소수점형 E 또는 e표기법
f 또는 e중에서 짧은 형태를 선택
1개 문자 출력
문자열
31
C Programming Language
Chap 3. 기본 자료형 및 문자열
표준 출력 함수
 printf()
 함수 원형
 Int printf(“문자 문자열 공백 비공백-\t \n”);
 Int printf(“문자 문자열 형식지정자1, 형식지정자2”,변수1, 변수2);
 Int printf(“문자 문자열 형식지정자1, 형식지정자2”,수식1, 함수결과값2);
 형식 지정자의 출력 폭과 정밀도 지정
플래그
의
미
-
항목이 왼쪽에 맞춰 출력된다. 즉, 필드의 왼쪽부터 출력을 시작한다.
ex) “%-20s”
+
부호화 수치가 출력될 때 양의 값이면 + 부호를, 음의 값이면 – 부호를 수치 앞에 붙여 출력한다.
ex) “%+6.2f”
공백
부호화 수치가 출력될 때 양의 값이면 부호를 붙이지 않고 공백을 하나 두며, 음의 값이면 – 를 붙인다.
ex) “% 6.2f”
#
변환 형식에 다른 표현을 사용한다. %o는 0을 앞에 붙이고 %x와 %X는 0x와 0X를 각각 붙여준다. 모든
부호형에 대해서 #을 사용하면 소수점 이하에 아무 것도 없을 지라도 소수점을 사용해서 출력한다. %g
와 %G형일 때 끝에 붙은 0이 제거되는 것을 막아준다.
ex) “%#o”, “%#8.0f”, “%+#10.3E”
0
수치값에 대해서 필드 너비의 여분 공간을 앞에서부터 공백으로 채우는 대신에 0으로 채운다. – 플래그
가 존재하거나 정수형에 대해서 정밀도가 기술되어 있다면 이 플래그는 무시된다.
ex) “%010d”, “%08.3f”
WONKWANG UNIVERSITY
Dept. of Computer Engineering
32
C Programming Language
Chap 3. 기본 자료형 및 문자열
주석문
 주석문(Comment)
 프로그램을 이해하기 쉽도록 설명하는 부분으로써, 컴파일러는 이를 해
석하지 않고 무시한다.
 주석문의 일반 형식
형 식 : /* 주석문(내용설명기술등..) */
즉, /* 와 */사이에 설명할 내용을 기술할 수 있으면 한 줄 이
상 여러줄로 작성해도 가능함 .
예) /* 이 주석문에서는 주로 프로그램 저작 및 동작설명등의
프로그램 문서화 기술을 하기위해 사용함
*/
// 한 줄 주석문( 간단설명)
즉 // 뒤에 설명할 내용을 기술
예) // 한 줄로 작성되며 프로그램 이해에 도움되는 내용기술
WONKWANG UNIVERSITY
Dept. of Computer Engineering
33
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 17~20 참조
 정수형(int)
 예제 1
 정수형 변수(i)값을 표준 출력 함수(#include <stdio.h>)를 사용하여 십진수
로 출력하는 프로그램
#include <stdio.h>
void main()
{
int i = -100;
printf("printf 함수를 이용한 10진 정수
①
출력\n", ②
);
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
34
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 17~20 참조
 정수형(int)
 예제 2
 정수형 변수(a)값을 표준 출력 함수를 사용하여 8진수로 출력하는 프로그램
#include <stdio.h>
void main()
{
int a = 100;
printf("printf 함수를 이용한 8진수 값
① 출력\n", ② );
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
35
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 17~20 참조
 정수형(int)
 예제 3
 정수형 변수(a)값을 표준 출력 함수를 사용하여 16진수로 출력하는 프로그램
#include <stdio.h>
void main()
{
int a = 100;
printf("printf 함수를 이용한 16진수 값
①
출력\n", ② );
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
36
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 17~20 참조
 정수형(int)
 예제 4
 정수형 변수(x)값을 변환 문자를 사용하여 출력하는 프로그램
 X를 10자리에 맞추어 오른쪽 정렬로 출력
 2번 빈칸에 “x를 10자리에 맞추어 출력한다.” 라는 한 줄 주석을 입력
#include<stdio.h>
void main()
{
int x = 345;
printf(“ ① \n",x ); ②
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
37
Chap 3. 기본 자료형 및 문자열
기본자료형 : 17~20 참조
 정수형(int)
 예제 5
의
(마이너스 부호)
변환된 인수를 왼쪽부터 채워 출력
8125...... (오른쪽으로 비움)
print(“%-5d…
+
(자릿수 기입)
최소한 m 자리 수만큼 필드 폭 확보
.......8125 (왼쪽으로 비움)
printf(“%10d…
.
(피리오드)
필드 폭과 문자수 혹은 소수점 이하의
자릿수와의 구별
printf(“%10.5f…
N
(자릿수 기입)
수치는 소수점 이하의 자릿수.
문자는 문자를 취하는 폭(문자의 처음
부터)
printf(“%10.5f…
printf(“%10.5s…
대응하는 인수를 long 형으로 함
printf(“%ld…
l
미
C Programming Language
보기
플래그
 정수형 변수(x)값을 변환 문자를 사용하여 출력하는 프로그램
#include<stdio.h>
void main()
{
int x = 345;
printf(“ ① \n",x); /*x를 10자리에 맞추어 출력하고 출력방향을
왼쪽에 맞춘다. */
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
38
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 17~20 참조
 정수형(int)
 예제 6
 정수형 변수(x)값을 변환 문자를 사용하여 출력하는 프로그램
#include<stdio.h>
void main()
{
int x = 345;
printf(“
①
\n",x); /* x를 10자리에 맞추어 출력하고 남는
공백을 0으로 채운다. */
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
39
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 21~24 참조
 실수형(float)
 예제 7
 배정도 실수형 변수(y)값을 변환문자를 사용하여 출력하는 프로그램
#include<stdio.h>
void main()
{
double y = 34.5678;
printf(“
① \n",y); /*y를 소수점 이하 2자리로 출력한다. */
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
40
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 21~24 참조
 실수형(float)
 예제 8
 배정도실수형 변수(y)값을 변환문자를 사용하여 출력하는 프로그램
#include<stdio.h>
void main()
{
double y = 34.5678;
printf(“
①
\n",y) ; /*y를 소수점 이하 5자리,전체자릿수는 10자리
출력방향은 왼쪽으로 출력한다. */
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
41
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 25~28참조
 문자형(char)
 예제 9
 문자형 변수(c)값을 표준 출력 함수를 사용하여 출력하는 프로그램
#include <stdio.h>
void main()
{
char c = 'A';
printf("printf 함수를 이용한 문자
① 출력\n",c);
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
42
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 25~28참조
 문자형(char)
 예제 10
 문자형 변수(a)값을 표준 출력 함수를 사용하여 정수형으로 출력하는 프로그램
#include <stdio.h>
void main()
{
char a = 'B';
printf(“ ①
\n",a);
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
43
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형 : 25~28참조
 문자형(char)
 예제 11
 정수형 변수(a)값을 표준 출력 함수를 사용하여 문자를 출력하는 프로그램
#include <stdio.h>
void main()
{
int a = 65;
printf(“ ①
\n",a);
// printf(“%d \n”, a)의 결과도 얻어보시오
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
44
C Programming Language
Chap 3. 기본 자료형 및 문자열
기본자료형
 리터럴 상수(literal constant)
 예제 12
 상수 값을 표준 출력 함수를 사용하여 출력하는 프로그램
#include <stdio.h>
void main()
{
printf(“정수형 상수 : %d\n",10);
printf(“실수형 상수 : %f\n",10.3 + 10.2);
printf(“문자형 상수 : %c\n",’a’);
}
 실행결과
WONKWANG UNIVERSITY
Dept. of Computer Engineering
45
C Programming Language
Chap 3. 기본 자료형 및 문자열
WONKWANG UNIVERSITY
Dept. of Computer Engineering
46