제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.

Slides:



Advertisements
Similar presentations
03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
Advertisements

제6장 조건문.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
제 3 장 변수와 자료형.
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
C++ Espresso 제1장 기초 사항.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
제 1장 C 언어의 소개.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
4장: 자료형과 수식.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
C언어: 배열 (Arrays).
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
변수와 자료형.
Chapter 10. 포인터.
제 2 장 변수와 상수.
프로그래밍2 및 실습 C언어 기반의 C++ 2.
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4주차: Data Types and Functions
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
Chapter 2 Lexical Elements, Operators, and the C System
제2장 데이터 및 수식.
제2장 데이터형과 표준 입출력문 문봉근.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
제 6장 함수 Hello!! C 언어 강성호 김학배 최우영.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
제 3 장 연산자 (Operators).
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다.
-Part2- 제1장 1차원 배열이란 무엇인가.
연산자Operators C언어의 기본 구조 도서출판 한산 C언어의 기본 구조 1: #include <stdio.h>
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab..
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
3주차: Control Flow and Others
어서와 C언어는 처음이지 제16장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
11장. 1차원 배열.
Presentation transcript:

제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영

순서 데이터의 형태 분류 상수형 변수형 변수형 선언과 형의 변환 산술, 관계, 논리 연산자 기타 연산자 연산의 순서 요약 제 3장 데이터형과 연산자 데이터의 형태 분류 상수형 변수형 변수형 선언과 형의 변환 산술, 관계, 논리 연산자 기타 연산자 연산의 순서 요약

데이터의 형태 분류 데이터의 형태 상수(constant) 데이터를 직접 기술하는 것 변수(variable) 제 3장 데이터형과 연산자 데이터의 형태 상수(constant) 데이터를 직접 기술하는 것 변수(variable) 상수를 기억하여 간접적으로 사용되는 형태 배열형 데이터 포인터형 데이터 구조체형 데이터 열거형 데이터

상수형 제 3장 데이터형과 연산자 상수형의 분류

상수형 정수형 상수 정수는 보통 10진수로 표현 8진수인 경우는 `0'으로 시작 제 3장 데이터형과 연산자 정수형 상수 정수는 보통 10진수로 표현 8진수인 경우는 `0'으로 시작 16진수인 경우는 `0x' 또는 `0X'로 시작 16진수는 0-9와 A, B, C, D, E, F를 사용 정수 표기의 예

상수형 정수형 상수 정수형 상수의 형은 보통 프로그램 내에서 상수가 대입되는 변수의 형에 따라 결정 제 3장 데이터형과 연산자 정수형 상수 정수형 상수의 형은 보통 프로그램 내에서 상수가 대입되는 변수의 형에 따라 결정 필요한 경우에는 상수가 메모리 내에서 차지하는 크기나 부호표시의 여부를 직접 정해줄 수 있음 정수형 상수의 데이터 형태 정수형을 부호 없이 양의 값만으로 쓰고 싶은 경우는 정수형 상수 끝에 `U'나 `u'자를 첨가 정수형 상수 값의 범위를 크게 하고 싶으면, 정수형 상수의 끝에 `L'나 `l'을 첨가

상수형 실수형 상수 정수가 아닌 소수를 나타내는 상수 고정소수점 방식은 소수점을 사용하여 정수부와 실수부를 구분하는 방식 제 3장 데이터형과 연산자 실수형 상수 정수가 아닌 소수를 나타내는 상수 고정소수점 방식은 소수점을 사용하여 정수부와 실수부를 구분하는 방식 부동 소수점 방식은 소수점을 쓰기는 하지만, 그 위치를 첫 번째 숫자 뒤로 한정시키는 방법 사용예

상수형 실수형 상수 문자 상수 실수형 상수의 크기는 정수형 상수에서처럼 그 상수가 대입되는 변수의 크기에 따라 결정됨 제 3장 데이터형과 연산자 실수형 상수 실수형 상수의 크기는 정수형 상수에서처럼 그 상수가 대입되는 변수의 크기에 따라 결정됨 직접 실수형 상수의 크기를 정해주고 싶으면 상수의 뒤에 첨자를 붙임 실수형 상수의 뒤에 `f'나 `F'를 붙이면 상수는 크기가 4바이트인 float형태 `l'이나 `L'을 덧붙이면 크기가 8바이트인 double형태 문자 상수 하나의 문자로 구성된 상수 문자 상수는 `a'와 같이 작은따옴표로 표현 특수 제어 문자의 종류와 용도

상수형 제 3장 데이터형과 연산자

상수형 문자열 상수 문자열(string)이란 문자들이 모여 있는 것으로 다수의 문자를 출력하거나 처리할 때에 쓰임 제 3장 데이터형과 연산자 문자열 상수 문자열(string)이란 문자들이 모여 있는 것으로 다수의 문자를 출력하거나 처리할 때에 쓰임 [예제 3-1] #include <stdio.h> void main() { printf("Hello, everybody\n"); printf("Goodbye, everybody\n"); } [실행 결과] Hello, everybody Goodbye, everybody

변수형 개념 변수(variable)는 상수와는 달리 프로그램 수행 도중에 그 값이 바뀜 제 3장 데이터형과 연산자 개념 변수(variable)는 상수와는 달리 프로그램 수행 도중에 그 값이 바뀜 프로그램이 수행되는 도중에 그 값이 저장되어 있을 기억장소가 필요하고, 프로그램에서 그 기억장소를 억세스하기 위한 이름이 필요 변수명(variable name)은 항상 영문자로 시작되어야 하고, 32자 까지만 인식 변수는 기억되는 데이터의 형태에 따라 문자형, 정수형, 실수형 변수로 구분

변수형 제 3장 데이터형과 연산자 정수형 변수의 종류

변수형 정수형 변수 [예제 3-2] #include <stdio.h> void main() { 제 3장 데이터형과 연산자 정수형 변수 [예제 3-2] #include <stdio.h> void main() { unsigned char a,b,c; a = 'A'; b = 'B'; c = a + b; printf("%c + %c = %c\n",a,b,c); /* 문자로 취급 */ printf("%d + %d = %d\n",a,b,c); /* 정수로 취급 */ } [실행 결과] A + B = â 65 + 66 = 131

변수형 제 3장 데이터형과 연산자 실수형 변수 실수형 변수(floating variable)는 소수점 아래의 수를 포함한 자세한 계산을 하기 위한 변수로서, 변수형에 비해 사용빈도는 낮지만, 나눗셈 등의 계산에는 필수적 실수형은 메모리에 기억될 때 유효숫자와 자릿수의 형태로 기억되기 때문에 차지하는 메모리의 크기에 비례하여 수의 정밀도와 나타낼 수 있는 수의 범위가 커짐 실수형 변수의 크기와 범위

변수형 선언과 형의 변환 제 3장 데이터형과 연산자 선언 지금까지 3.3절에서 설명한 바와 같이 변수는 그 형에 따라 필요한 메모리의 크기가 달라지므로, 프로그램에서 실행 가능한 부분이 시작되기 전에 필요한 변수의 크기와 형을 정해주어서 미리 기억장소를 할당하도록 해야만 프로그램 내에서 변수를 사용할 수가 있다. 이렇게 프로그램의 앞에서 사용할 변수를 미리 밝히는 것을 선언(declaration)이라 한다 변환 선언에 의해 정해진 변수의 형은 계속해서 유지되지만, 필요에 의해 프로그램 내에서 일시적으로 바뀌어져야 할 때가 있다. 이런 경우를 형의 변환이라고 한다. 형의 변환은 컴파일러에 의해 자동적으로 이루어지기도 하지만, 필요에 따라서는 사용자가 강제적으로 변환시킬 수도 있다

변수형 선언과 형의 변환 변수형 선언 변수를 사용하는 모든 프로그램의 앞부분에는 이처럼 사용할 변수를 미리 선언해 주어야 함 제 3장 데이터형과 연산자 변수형 선언 변수를 사용하는 모든 프로그램의 앞부분에는 이처럼 사용할 변수를 미리 선언해 주어야 함 [예제 3-3] main(){ int i; /* 변수 선언부 */ char c; long a; float ratio; float total; i = 0; j = 10000; c = 'Z'; a = 1; ratio = 0.5; }

변수형 선언과 형의 변환 변수형 선언 [예제 3-4] main() { int i = 0, j = 10000; 제 3장 데이터형과 연산자 변수형 선언 [예제 3-4] main() { int i = 0, j = 10000; char c = 'Z'; long a; float rate = 0.5, total; . }

변수형 선언과 형의 변환 형의 변환 정해진 데이터의 형이 프로그램 수행도중에 바뀌어지는 것 [예제 3-5] 제 3장 데이터형과 연산자 형의 변환 정해진 데이터의 형이 프로그램 수행도중에 바뀌어지는 것 [예제 3-5] #include<stdio.h> main() { int a = 1234; float b; b = a; /* float <= int */ printf("b = %f",b); } [실행결과] b = 1234 데이터형의 범위의 관계 char<short int<long int<float<double<long double

변수형 선언과 형의 변환 제 3장 데이터형과 연산자 형의 결정 강제적인 형의 변환은 캐스트(cast)연산자에 의해 이루어지며 캐스트 연산자의 형태는 선언문에서 쓰는 데이터형을 소괄호(`( )')안에 써주는 형태

산술, 관계, 논리 연산자 산술 연산자 각종 산술 연산에서 쓰이는 연산자 이항 연산자 제 3장 데이터형과 연산자 산술 연산자 각종 산술 연산에서 쓰이는 연산자 이항 연산자 두 항 사이의 산술 연산을 지시하는 연산자로 사칙연산과 같은 일반적인 산술식의 대부분 이항 연산자의 종류와 기능

산술, 관계, 논리 연산자 이항 연산에서의 우선 순위 `-' 단항 연산자 `*', `/', `%' 이항 연산자 제 3장 데이터형과 연산자 이항 연산에서의 우선 순위 `-' 단항 연산자 `*', `/', `%' 이항 연산자 `+', `-' 이항 연산자 예 : int a = 3, b = 8, c = -4, d = -10;

산술, 관계, 논리 연산자 산술 연산자 단항 연산자 하나의 데이터만을 대상으로 연산을 수행 제 3장 데이터형과 연산자 산술 연산자 단항 연산자 하나의 데이터만을 대상으로 연산을 수행 `+', `-'의 양수, 음수 부호 연산자 증가 연산자(increment operator) 감소 연산자(decrement operator) 선행(prefix) 연산자와 후행(postfix) 연산자 사용예 int a, b; a = 10;

산술, 관계, 논리 연산자 제 3장 데이터형과 연산자 단항 연산자의 사용 예와 결과

산술, 관계, 논리 연산자 [예제 3-5] #include <stdio.h> main() { 제 3장 데이터형과 연산자 [예제 3-5] #include <stdio.h> main() { int a = 5, b; b = ++a; printf("b = %d",b); } [예제 3-6] b = a++;

산술, 관계, 논리 연산자 산술 연산자 대입 연산자 `='는 연산자 우측의 값을 좌측의 변수에 대입한다는 의미 제 3장 데이터형과 연산자 산술 연산자 대입 연산자 `='는 연산자 우측의 값을 좌측의 변수에 대입한다는 의미 대입연산자의 종류와 기능

산술, 관계, 논리 연산자 관계 연산자 두 데이터간의 대소 및 상등을 판별하는 연산자 제 3장 데이터형과 연산자 관계 연산자 두 데이터간의 대소 및 상등을 판별하는 연산자 결과값은 연산자에 따라 참이면 1, 거짓이면 0으로 관계 연산자의 종류와 기능

산술, 관계, 논리 연산자 관계 연산자 관계연산자가 대입 연산자보다 우선 순위가 낮음 제 3장 데이터형과 연산자 관계 연산자 관계연산자가 대입 연산자보다 우선 순위가 낮음 관계 연산자의 연산 우선 순위는 산술 연산자보다 낮음 관계 연산자가 여러개 있을 경우는 왼쪽에서부터 높은 우선 순위 [예제 3-7] #include<stdio.h> main() { int i = 5, j; j = (7 < i < 10); printf("Result is %d",j); } [실행 결과] Result is 1

산술, 관계, 논리 연산자 논리 연산자 AND, OR, NOT등의 논리 연산을 수행 논리 연산자의 종류와 기능 제 3장 데이터형과 연산자 논리 연산자 AND, OR, NOT등의 논리 연산을 수행 논리 연산자의 종류와 기능

산술, 관계, 논리 연산자 논리 연산자 연산 우선 순위 예 char c = 'd'; 제 3장 데이터형과 연산자 논리 연산자 연산 우선 순위 예 char c = 'd'; int i = 10, j = 10, k = 20; float x = 3.4;

기타 연산자 비트 처리 연산자 비트 연산자는 주어진 데이터를 비트 단위에서 인식하여 연산을 수행하는 연산자 제 3장 데이터형과 연산자 비트 처리 연산자 비트 연산자는 주어진 데이터를 비트 단위에서 인식하여 연산을 수행하는 연산자 비트 연산자의 종류와기능 보수 보수(complement)는 보통 일의 보수 비트 단위에서 0은 1로, 1은 0으로 반전 보수 연산자는 단항 연산자이므로, 다른 이항 연산자에 우선

기타 연산자 비트 처리 연산자 비트 논리 연산자 논리 연산자를 비트 단위에서 행하는 것 비트 논리 연산자의 기능 제 3장 데이터형과 연산자 비트 처리 연산자 비트 논리 연산자 논리 연산자를 비트 단위에서 행하는 것 비트 논리 연산자의 기능

기타 연산자 이동 연산자 이동(shift) 연산이란 주어진 수를 비트 단위에 서 모든 비트들을 순서대로 이동시키는 것 제 3장 데이터형과 연산자 이동 연산자 이동(shift) 연산이란 주어진 수를 비트 단위에 서 모든 비트들을 순서대로 이동시키는 것 이동 연산자의 종류와 기능

기타 연산자 비트 처리 연산자 이동 연산자 실제 이동의 예 char x = 28; 제 3장 데이터형과 연산자 비트 처리 연산자 이동 연산자 실제 이동의 예 char x = 28; 간단한 정수의 곱셈을 빠르게 행할 수 있지만, 실수형에서는 가능하지 않고 부호가 있는 경우도 사용해서는 안됨

기타 연산자 조건 연산자 조건 연산의 형식 조건식 ? 연산식 1 : 연산식 2 제 3장 데이터형과 연산자 조건 연산자 조건 연산의 형식 조건식 ? 연산식 1 : 연산식 2 위의 형식에서 조건식의 값이 참(1)이면 연산식 1을 수행하여 결과값을 구하고, 조건식의 값이 거짓(0)이면 연산식 2를 수행하여 결과값을 구한다. 조건 연산자는 위의 식에서 쓰인 `?'와 `:'를 말한다. 다음의 연산식은 i와 j를 비교하여 둘이 같으면 i값에 3을 더하여 k에 대입하고, 같지 않으면 두수의 차를 구하여 k에 대입하는 연산이다. k = (i == j ? i + 3 : i - j); 같은 연산을 조건문을 써서 수행하려면 다음과 같다. if (i == j) k = i + 3; else k = i - j;

기타 연산자 제 3장 데이터형과 연산자 쉼표 연산자 쉼표 연산자(comma operator)는 연산자 `,'를 이용하여 여러 개의 연산을 순서대로 수행하는 연산자이다. 쉼표 연산자를 사용하여 나열한 연산들은 왼쪽에서부터 차례대로 수행되며, 보다 왼쪽에 있는 연산의 결과가 오른쪽에 있는 연산에 사용될 수 있다. 일반적인 형식은 다음과 같다. 연산식 1, 연산식 2, 연산식 3, …… 이 연산자를 이용하여 연산을 간단하게 표현할 수 있지만, 자칫하면 프로그램이 이해하기 힘들게 될 우려가 있으므로 주의해야 한다. 쉼표 연산자는 연산과 연산을 구분하는 연산자이므로, 모든 연산자보다 연산 우선 순위가 낮다.

기타 연산자 캐스트 연산자 데이터의 형을 원하는 데이터형으로 강제적으로 바꾸어주는 연산자 제 3장 데이터형과 연산자 캐스트 연산자 데이터의 형을 원하는 데이터형으로 강제적으로 바꾸어주는 연산자 표현할 수 있는 데이터의 범위가 작은 데이터형에서 보다 큰 데이터형으로 변환이 필요할 때에만 자동적으로 형의 변환이 일어남 캐스트 연산자는 범위가 넓은 데이터형을 작은 데이터형으로 바꾸는 것 캐스트 연산자의 형식 (데이터형) 데이터 또는 연산식 [예제 3-8] main() { int a = 50, b = 500; char c, d; c = (char) a; d = (char) b; . }

기타 연산자 제 3장 데이터형과 연산자 sizeof 연산자 sizeof 연산자는 C 언어에서 연산자로써 분류, 제공되고 있지만 실제 사용법이나 기능은 함수에 가깝다. sizeof 연산자는 식이나 데이터, 또는 데이터형을 받아서 그 데이터의 크기를 바이트 단위로 돌려준다. 사용예 char a = 3; 이 연산자는 여러 가지 다른 환경에서 사용되는 프로그램에서 각 데이터형이 갖는 메모리 크기를 확인할 때 사용되거나, 뒤에서 나올 구조체 등을 사용할 때 사용되는 메모리 크기를 알고 싶을 때도 사용될 수 있다.

연산의 순서 연산의 기본원칙 연산자의 우선 순위 ( ) 안의 내용이 먼저 수행됨 단항 연산자가 이항 연산자보다 먼저 수행됨 제 3장 데이터형과 연산자 연산의 기본원칙 ( ) 안의 내용이 먼저 수행됨 단항 연산자가 이항 연산자보다 먼저 수행됨 왼쪽에서 오른쪽으로 수행됨 연산자의 우선 순위 위의 원칙에 예외 존재 주어진 우선 순위에 따라도 순서가 불분명한 경우는 반드시 괄호를 사용하여 우선 순위를 표시해 주는 것이 좋음

연산의 순서 제 3장 데이터형과 연산자