상수와 기본 자료형.

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 Part 03 상수, 변수, 자료형 안산 1 대학 디지털정보통신과 임 성 국. 2 이 장의 내용 자료형이란 무엇인가 ? 상수와 변수 정수형 부동소수형 문자형.
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
HANNAM UNIVERSITYHttp://netwk.hannam.ac.kr Chapter 3 변수와 자료형.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Chapter 7. 조건문.
#include <stdio.h> int main(void) { float radius; // 원의 반지름
제 9 장 구조체와 공용체.
-Part2- 제3장 포인터란 무엇인가.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
6장. printf와 scanf 함수에 대한 고찰
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
3. printf()와 데이터 형식.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
Lesson 6. 형변환.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
C 프로그래밍.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Chapter 06. printf 함수와 scanf 함수 정리하기
23장. 구조체와 사용자 정의 자료형 2.
6장. printf와 scanf 함수에 대한 고찰
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 03. 변수와 연산자.
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
C언어 콘서트 제3장 변수와 자료형.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
C#.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
C 3장. 변수와 데이터형 #include <stdio.h> int main(void) { int num;
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
연산자 (Operator).
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Chapter 05. 입출력 함수.
컴퓨터 프로그래밍 기초 - 3rd : 상수,변수 생성규칙 및 자료형 -
8주차: Strings, Arrays and Pointers
1. 2진 시스템.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express Slide 1 (of 31)
-Part1- 제6장 자료형이란 무엇인가.
제 15 강 문자와 코드 shcho.pe.kr.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
13. 포인터와 배열! 함께 이해하기.
C Programming Seminar 데이터와 입출력 함수.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

상수와 기본 자료형

5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자 정의 자료형 사용자가 정의하는 자료형 : 구조체, 공용체

5-1 C 언어가 제공하는 기본 자료형 기본 자료형 종류와 데이터의 표현 범위 자료형(data type) 할당되는 메모리 크기 표현 가능한 데이터의 범위 정 수 형 char 1 바이트 -128 ~ +127 short 2 바이트 -32768 ~ +32767 int 4 바이트 -2147483648 ~ +2147483647 long 실 float 3.4*10-37 ~ 3.4*10+38 double 8 바이트 1.7*10-307 ~ 1.7*10+308

5-1 C 언어가 제공하는 기본 자료형 다양한 자료형이 제공되는 이유 데이터의 표현 방식이 다르기 때문 정수형 데이터를 표현하는 방식 실수형 데이터를 표현하는 방식 메모리 공간을 적절히 사용하기 위해서 데이터의 표현 범위를 고려해서 자료형 선택 작은 메모리 공간에 큰 데이터를 저장하는 경우 데이터 손실이 발생할 수 있음

5-1 C 언어가 제공하는 기본 자료형 sizeof 연산자 피연산자의 메모리 크기를 반환 피연산자로 자료형의 이름이 올 경우 괄호를 사용 그 이외의 경우 괄호의 사용은 선택적 예제 sizeof.c 참조 int main(void) { int val=10; printf(“%d”, sizeof val ); // 변수 val의 메모리 크기 출력 printf(“%d”, sizeof(int) ); // 자료형 int의 메모리 크기 출력 . . . . .

sizeof 연산자 #include <stdio.h> int main(void) { char c=10; int i=3048; double f=3.1415; printf("변수 c의 크기 : %d \n", sizeof c); printf("변수 i의 크기 : %d \n", sizeof i); printf("변수 f의 크기 : %d \n", sizeof f); printf("char 할당 메모리 : %d \n", sizeof(char)); printf("int 할당 메모리 : %d \n", sizeof(int)); printf("double 할당 메모리 : %d \n", sizeof(double)); return 0; }

5-1 C 언어가 제공하는 기본 자료형 자료형 선택의 기준 정수형 데이터를 처리하는 경우 컴퓨터는 내부적으로 int형 연산을 가장 빠르게 처리, 따라서 정수형 변수는 int형으로 선언 범위가 int형 변수를 넘어가는 경우 long형으로 선언 값의 범위가 –128 ~ +127 사이라 할지라도 int형으로 선언 예제 char_add.c 참조

/* char_add.c */ #include <stdio.h> int main(void) { char a, b; char result; printf("-50 이상 +50 이하의 수 둘 입력 : "); scanf("%d %d", &a, &b); result=a+b; printf("두 수의 덧셈 결과 : %d \n", result); return 0; }

5-1 C 언어가 제공하는 기본 자료형 자료형 선택의 기준 실수형 데이터를 처리하는 경우 선택의 지표는 정밀도 정밀도란 오차 없이 표현 가능한 정도를 의미함 오늘날의 일반적 선택은 double! 예제 circle_area.c 참조 자료형 정밀도 float 소수 이하 6자리 double 소수 이하 15자리 long double double의 정밀도와 같거나 크다.

/* circle_area.c */ #include <stdio.h> int main(void) { double radius; double area; printf("원의 반지름 입력 : "); scanf("%lf", &radius); area = radius*radius*3.1415; printf("원의 넓이 : %f \n", area); return 0; }

unsigned가 붙어서 달라지는 표현의 범위 5-1 C 언어가 제공하는 기본 자료형 unsigned가 붙어서 달라지는 표현의 범위 MSB까지도 데이터의 크기를 표현하는데 사용 양의 정수로 인식 실수형 자료형에는 붙일 수 없다. 자료형 메모리 크기 표현 가능한 데이터의 범위 char(signed char) 1바이트 -128 ~ +127 unsigned char 0 ~ (127 + 128) short(signed short) 2바이트 -32768 ~ +32767 unsigned short 0 ~ (32767 + 32768) int(signed int) 4바이트 -2147483648 ~ +2147483647 unsigned int 0 ~ (2147483647 + 2147483648) long(signed long) unsigned long

5-1 C 언어가 제공하는 기본 자료형 문자 표현을 위한 ASCII 코드의 등장 미국 표준 협회(ANSI)에 의해 정의 컴퓨터를 통해서 문자를 표현하기 위한 표준 컴퓨터는 문자를 표현하지 못함 문자와 숫자의 연결 관계를 정의 문자 A는 숫자 65, 문자 B는 숫자 66… American Standard Code for Information Interchange American National Standards Institute

문자 표현(ASCII) /*how_char.c*/ #include <stdio.h> int main(void) { char ch1='A'; char ch2=65; printf("%d %d \n", ch1, ch2); printf("%c %c \n", ch1, ch2); return 0; }

5-1 C 언어가 제공하는 기본 자료형 ASCII 코드의 범위 문자의 표현 0이상 127이하, char형 변수로 처리 가능 따옴표(' ')를 이용해서 표현 예제 how_char.c 참조 그림 5-1

5-2 상수에 대한 이해 심볼릭(symbolic) 상수 심볼릭 상수를 정의하는 방법 이름을 지니는 상수 5-2 상수에 대한 이해 심볼릭(symbolic) 상수 이름을 지니는 상수 심볼릭 상수를 정의하는 방법 const 키워드를 통한 변수의 상수화 매크로를 이용한 상수의 정의

5-2 상수에 대한 이해 const 키워드에 의한 상수화 잘못된 상수 선언 int main(void) { 5-2 상수에 대한 이해 const 키워드에 의한 상수화 int main(void) { const int MAX=100; const double PI=3.1415; . . . . . } 잘못된 상수 선언 int main(void) { const int MAX; MAX=100; . . . . . }

#include <stdio.h> int main(void) { double radius; double area; const double PI=3.1415; printf("원의 반지름 입력 : "); scanf("%lf", &radius); area = radius*radius*PI; printf("원의 넓이 : %f \n", area); return 0; }

5-3 자료형 변환에 대한 이야기 자료형 변환의 두 가지 형태 자동 형 변환 강제 형 변환 5-3 자료형 변환에 대한 이야기 자료형 변환의 두 가지 형태 자동 형 변환 자동적으로 발생하는 형태의 변환을 의미한다. 묵시적 형 변환이라고도 표현한다. 강제 형 변환 프로그래머가 명시적으로 형 변환을 요청하는 형태의 변환 명시적 형 변환이라고도 표현한다.

5-3 자료형 변환에 대한 이야기 자동 형 변환이 발생하는 상황 1 대입 연산 시 예제 auto_conv1.c 참조 5-3 자료형 변환에 대한 이야기 자동 형 변환이 발생하는 상황 1 대입 연산 시 예제 auto_conv1.c 참조 #include <stdio.h> int main(void) { int n=5.25; // 소수부의 손실 double d=3; // 값의 표현이 넓은 범위로의 변환 char c=129; // 상위 비트의 손실 printf("%d, %f, %d \n", n, d, c); return 0; }

5-3 자료형 변환에 대한 이야기 자동 형 변환이 발생하는 상황 2 정수의 승격에 의해(int형 연산이 빠른 이유) 5-3 자료형 변환에 대한 이야기 자동 형 변환이 발생하는 상황 2 정수의 승격에 의해(int형 연산이 빠른 이유) 정수형 연산 자체를 단일화시킨 결과 int main(void) { char c1=10, c2=20; char c3=c1+c2; . . . . .

5-3 자료형 변환에 대한 이야기 자동 형 변환이 발생하는 상황 3 산술 연산 과정에 의해 int main(void) { 5-3 자료형 변환에 대한 이야기 자동 형 변환이 발생하는 상황 3 산술 연산 과정에 의해 int main(void) { double e1 = 5.5 + 7; // double + int double e2 = 3.14f+5.25; // float + double . . . . .

5-3 자료형 변환에 대한 이야기 산술 연산 형 변환 규칙 데이터의 손실이 최소화되는 방향으로... 그림 5-5

5-3 자료형 변환에 대한 이야기 강제 형 변환 프로그래머의 요청에 의한 형 변환 예제 conv_div.c 참조 5-3 자료형 변환에 대한 이야기 강제 형 변환 프로그래머의 요청에 의한 형 변환 예제 conv_div.c 참조 float f= (float)3.14; // 3.14를 float 형으로 형 변환 double e1 = (double)3 + 3.14; //정수 3이 double 형으로 강제 형 변환 double e2 = 3 + (int)3.14; // 3.14가 int형으로 강제 형 변환 int main(void) { int a=1; int b=2; float f = a/b; printf("나눗셈 결과 : %f \n", f); return 0; }

printf와 scanf 함수에 대한 고찰

printf 함수 이야기 printf는 문자열을 출력하는 함수이다. printf는 특수 문자 출력이 가능하다. 특수 문자 의 미 \a 경고음 소리 발생 \b 백스페이스(backspace) \f 폼 피드(form feed) \n 개행 \r 캐리지 리턴(carriage return) \t 수평 탭 \v 수직 탭 \\ 백슬래시(\) \’ 작은 따옴표 \” 큰 따옴표

printf 함수 이야기 특수 문자가 필요한 이유 잘못된 문자열 출력 그림 6-1 #include <stdio.h> int main(void) { printf("앞집 강아지가 말했다. "멍! 멍!" 정말 귀엽다."); return 0; } 그림 6-1

printf 함수 이야기 printf 함수는 서식 지정이 가능하다. printf의 f는 "formatted"를 의미한다. 서식 지정 : 출력의 형태를 지정한다는 의미 (ex : 문자열 안에 숫자 삽입) 서식 지정의 예 #include <stdio.h>   int main(void) { int age=12; printf("10진수로 %d살이고 16진수로 %x살 입니다.", age, age); return 0; }

printf 함수 이야기 서식 문자의 종류와 그 의미 서식 문자 출력 형태 %c 단일 문자 %d 부호 있는 10진 정수 %i 부호 있는 10진 실수 %s 문자열 %o 부호 없는 8진 정수 %u 부호 없는 10진 정수 %x 부호 없는 16진 정수, 소문자 사용 %X 부호 없는 16진 정수, 대문자 사용 %e e 표기법에 의한 실수 %E E 표기법에 의한 실수 %g 값에 따라서 %f, %e 둘 중 하나를 선택 %G 값에 따라서 %f, %G 둘 중 하나를 선택 %% % 기호 출력

printf 함수 이야기 %c, %d, %f, %lf, %s %o, %u, %x, %X %e, %E 가장 많이 쓰이는 서식 문자들 %o, %u, %x, %X 부호 없는 정수형 출력 %e, %E '부동소수점 표현 방식'에 의한 출력 3.1245e+2  3.1245×10+2 2.45e-4  2.45×10-4

printf 함수 이야기 필드 폭을 지정하여 멋진 출력을! 서식 문자를 이용해서 출력의 폭 지정 가능 예제 field_wid.c 참조 서식 문자 출력의 형태 %8d 필드 폭을 8칸 확보하고 오른쪽 정렬해서 출력하라. %-8d 필드 폭을 8칸 확보하고 왼쪽 정렬해서 출력하라. %+8d 필드 폭을 8칸 확보하고 오른쪽 정렬한 상태에서 양수는 +, 음수는 –를 붙여서 출력하라.

필드 폭 지정 #include <stdio.h> int main(void) { printf("/%12d/ /%12d/ /%12d/ \n", 100, 200, 300); printf("/%+12d/ /%+12d/ /%+12d/ \n", 100, 200, 300); printf("/%-12d/ /%-12d/ /%-12d/ \n", 100, 200, 300); return 0; }

필드 폭 지정 #include <stdio.h> int main(void) { printf("12345678901234567890\n"); // 열 번호 출력 printf("%10c\n", 'A'); // 문자 출력 printf("%10d\n", 128); // 정수값 출력 printf("%10.3f\n", 3.1415926);// 소수점 이하3자리까지만 출력 printf("%10.4s\n", "Love is"); // 문자열에서 앞의 4문자만 출력 return 0; }