기본 자료형 순천향대학교 정보기술공학부 이 상 정
자료형의 선언
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 3 자료형 선언 기본 자료형문자형 char 정수형 int 실수형 float double 형없음 void
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 4 자료형의 선언 기억클래스는 메모리 저장 방식을 지정 부호 수식자는 실수형에 적용 안됨 선언 예 auto signed long int num; => int num; extern long double; 기억클래스부호수식자크기수식자기본자료형 auto static extern register signed unsigned short long char int float double
문자와 char 자료형
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 6 char 자료형 char 형 변수는 문자와 정수 값을 저장하는 데 사용됨 메모리의 1 바이트에 저장됨 256 개의 값을 저장할 수 있음 signed char : -128 ~ +127 unsigned char: 0 ~ 255 영문자를 표시하기 이해 ASCII 문자 코드 사용 각 값은 메모리에 이진수로 저정됨 예 ) char c = 'a'; 변수 c 는 메모리 1 바이트에 로 저장됨 (ASCII 로 저장 ) 이 값을 계산하면 97 이 됨 (ASCII 값 )
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 7 ASCII 코드 ASCII 코드에서 문자 상수와 대응되는 정수 값 문자 상수 대응하는 값 문자 상수 대응하는 값 문자 상수 대응하는 값 문자 상수 대응하는 값 'a' 'b' 'c'... 'z' 'A' 'B' 'C'... 'Z' '0' '1' '2'... '9' '&' '*' '+'
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 8 특수문자 인쇄할 수 없는 문자는 \ 를 사용하여 표현함 예를 들어, 수평 탭 문자는 문자 상수와 문자열에서 \t 로 표현됨 \t 가 \ 와 t 두 문자로 기술되지만, 이것은 한 문자임 프로그램 내에서 특별한 의미를 갖는 문자들이 본 래의 의미를 갖기 위해서도 \ 를 사용해야 함 큰따옴표를 포함하는 "abc" 라는 문자열은 "\"abc\"" 로 표기함 작은따옴표 문자 상수 ' 는 '\'' 로 표기함
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 9 특수문자 문자 이름기술 형태정수 값 경고 역슬래시 백스페이스 캐리지 리턴 큰따옴표 폼피드 수평 탭 개형 널 문자 작은따옴표 수직 탭 \a \\ \b \r \" \f \t \n \0 \' \v
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 문자 A 출력 #include main() { putchar(65); putchar(0101); putchar(0x41); putchar( ‘ \n ’ ); putchar( ‘ A ’ ); putchar( ‘ \101 ’ ); putchar( ‘ \0x41 ’ ); putchar( ‘ \n ’ ); }
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 영문 소문자를 대문자로 변환 프로그램 (p.128) #include int main() { int c; while ((c = getchar()) != EOF) { if (c >= ‘a’ && c <= ‘z’) putchar(c + ‘A’ – ‘a’); /* c + 65 – 97 */ else putchar(c); }
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 12 int 자료형 C 언어의 기본적인 자료형 int 형은 컴퓨터 사양에 따라 2 바이트 (= 16 비트 ) 나 4 바이트 (= 32 비트 ) 에 저장됨 값의 범위 4 바이트 워드 컴퓨터 최소 = = 최대 = = 바이트 워드 컴퓨터 최소 = = 최대 = = 정수 오버플로 값의 범위를 초과할 때 발생 ( 주의 필요 )
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 13 short, long, unsigned short 자료형은 기억장소를 절약하고자 하는 경우에 사용 long 형은 큰 정수 값을 다룰 때 사용 short 형은 2 바이트에 저장되고, long 형은 4 바이트에 저장됨 4 바이트 워드 컴퓨터에서는 int 형과 long 형의 크기가 같고, 2 바이트 워드 컴퓨터에서는 int 형과 short 형의 크기가 같음 unsigned 형의 변수는 음수가 아닌 정수를 표현할 때 사용함
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 14 short, long, unsigned 정수 상수에 그 형을 명시하기 위해서는 접미사를 붙 일 수 있음 접미사가 붙지 않은 정수 상수의 형은 int, long, unsigned long 중 하나 임 시스템은 세 가지 형 중 그 정수 상수를 표현할 수 있는 첫 번 째 것을 선택하여 그 정수 상수의 형으로 함 예를 들어, 2 바이트 워드 컴퓨터에서 상수 은 int 형이 고, 은 long 형임 접미사 u 또는 U l 또는 L ul 또는 UL unsigned long unsigned long 37U 37L 37UL
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 15 실수형 ( 부동소수점형 ) 실수 값을 다루기 위해 사용함 정수를 부동형 상수로 표현할 때에는 소수점 을 사용해야 함 상수 1.0 과 2.0 은 double 형이지만, 상수 3 은 int 형임 접미사 f 또는 F l 또는 L float long double 3.7F 3.7L
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 16 실수형 상수 표기법 십진 표기법 1.0 또는 1. 또는.0001 지수 표기법 e5 (= X 10 5 ) 올바른 부동형 상수 , e-2F, 0e0, 1. 잘못된 부동형 상수 3.14,159 /* comma not allowed */ /* decimal point or exponential part needed */.e0 /* integer part or fractional part needed */
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 17 typedef typedef 의 목적 긴 선언문을 축약해 쓸 수 있음 사용 목적에 맞게 형 이름을 결정할 수 있음 프로그램 이식을 쉽게 할 수 있게 함 예제 typedef char uppercase; typedef int INCHES, FEET; uppercase u; INCHES length, width
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 18 sizeof 객체를 저장하는 데 필요한 바이트 수를 알아내기 위해 사용 사용법 sizeof(object) 기본형들의 크기 비교 sizeof(char) = 1 sizeof(short) <= sizeof(int) <= sizeof(long) sizeof(signed) = sizeof(unsigned) = sizeof(int) sizeof(float) <= sizeof(double) <= sizeof(long double)
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 sizeof 연산자 예 (p.125) /* Compute the size of some fundamental types. */ #include int main(void) { printf("The size of some fundamental types is computed.\n\n"); printf(" char:%3d byte \n", sizeof(char)); printf(" short:%3d bytes\n", sizeof(short)); printf(" int:%3d bytes\n", sizeof(int)); printf(" long:%3d bytes\n", sizeof(long)); printf(" unsigned:%3d bytes\n", sizeof(unsigned)); printf(" float:%3d bytes\n", sizeof(float)); printf(" double:%3d bytes\n", sizeof(double)); printf("long double:%3d bytes\n", sizeof(long double)); return 0; }
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 20 수학함수 다음과 같은 수학 함수는 표준 라이브러리의 일부 분인 수학 라이브러리로 제공됨 sqrt() pow() exp() log() sin() cos() tan() 이러한 수학 함수를 사용하기 위해서는 를 포함시켜야 함 정수용 abs() 와 실수용 fabs() 를 구별해서 사용해 야 함
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 수학함수 사용 예 (p.129) #include int main(void) { double x; printf("\n%s\n%s\n%s\n\n", "The square root of x and x raised", "to the x power will be computed.", "---"); while (1) { /* do it forever */ printf("Input x: "); scanf("%lf", &x);
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 수학함수 사용 예 if (x >= 0.0) printf("\n%15s%22.15e\n%15s%22.15e\n%15s%22.15e\n\n", "x = ", x, "sqrt(x) = ", sqrt(x), "pow(x, x) = ", pow(x, x)); else printf("\nSorry, your number must be nonnegative.\n\n"); } return 0; }
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 23 형 변환 필요에 따라 수식을 구성하는 자료 형들은 변환이 일어남 형 변환 자동 형 변환 강제 형 변환 ( 캐스트 ) 자동 형 변환 여러가지 형으로 혼합된 경우 큰 자료형으로 변환 int < unsigned int < long int < float < double < long double
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 24 자동 형 변환 선언 char c; short s; int i; long l; unsigned u; unsigned long ul; float f; double d; long double ld; 수식형 형 c - s / i u * i c + 3 c d + s 2 * i / l int double int double long u * 7 - i f * 7 - i 7 * s * ul ld + c u - ul u - l unsigned float unsigned long long double unsigned long system- dependent
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 25 캐스트 명시적인 변환 캐스트 예제 (double) i (long) ('A' + 1.0) x = (float) ((int) y + 1) (double) (x = 77)
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 진 상수와 8 진 상수 C 원시 코드에서 0 으로 시작하는 양의 정수 상 수는 8 진 정수이고 0x 또는 0X 로 시작하는 양의 정수 상수는 16 진 정수임
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 상수 예 (p.139) /* Decimal, hexadecimal, octal conversions. */ #include int main(void) { printf("%d %x %o\n", 19, 19, 19); /* */ printf("%d %x %o\n", 0x1c, 0x1c, 0x1c); /* 28 1c 34 */ printf("%d %x %o\n", 017, 017, 017); /* 15 f 17 */ printf("%d\n", x ); /* 37 */ printf("%x\n", ); /* 1fffff */ printf("%d\n", 0x1FfFFf); /* */ return 0; }
컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 28 과 제과 제 예제 프로그램 1-5 까지 작성하고 실행하여라. for 문을 이용하여 ASCII 코드 33 에서 110 까지 의 문자를 출력하는 프로그램을 작성하여라. ( 출력은 “ASCII 코드 값 => 문자 ” 로 표시 )