1 / 50

3 장 . 변수와 데이터형

3 장 . 변수와 데이터형. C. #include &lt;stdio.h&gt; int main(void) { int num; printf(“Please enter an integer: &quot;); scanf(&quot;%d&quot;, &amp;num); if ( num &lt; 0 ) printf(&quot;Is negative.<br>&quot;); printf(&quot;num = %d<br>&quot;, num); return 0; }. 학습목표. 3 장 . 변수와 데이터형. 목차. 3 장 . 변수와 데이터형. 변수와 상수.

gordon
Download Presentation

3 장 . 변수와 데이터형

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3장. 변수와 데이터형 C #include <stdio.h> int main(void) { int num; printf(“Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("Is negative.\n"); printf("num = %d\n", num); return 0; }

  2. 학습목표 3장. 변수와 데이터형

  3. 목차 3장. 변수와 데이터형

  4. 변수와 상수 • 변수는 값이 변경될 수 있는 데이터를 말하고, • 상수는 값이 변경될 수 없는 데이터를 말한다. 3장. 변수와 데이터형

  5. 변수와 상수 • 변수 • 데이터를 보관해둘 필요가 있을 때, 변수를 사용한다. 3장. 변수와 데이터형

  6. 변수와 상수 • 변수 • 데이터를 보관하기 위해서 메모리를 사용한다. • 메모리는 연속된 데이터 바이트의 모임을 말하며, 메모리의 각 바이트는 주소를 갖는다. • 프로그램에서 사용되는 모든 데이터는 바이트 단위의 크기를 가지며, 데이터 값의 형식에 따라 크기가 다르다. 3장. 변수와 데이터형

  7. 변수와 상수 • 변수 • 저장될 값의 데이터 형에 따라 필요한 만큼 메모리를 할당 받고, 이름을 붙여둔다.  "변수를 선언한다." • 변수를 선언하고 나면 변수의 이름을 이용해서 메모리에 접근할 수 있다. 3장. 변수와 데이터형

  8. 변수와 상수 • 변수의 선언 • 기본 데이터형 • 문자형 : char • 정수형 : short, int, long • 실수형 : float, double 3장. 변수와 데이터형

  9. 변수와 상수 • 식별자 규칙 • 변수명이나 함수명과 같은 이름을 식별자라고 한다. 3장. 변수와 데이터형

  10. 변수와 상수 • 식별자 규칙 • 식별자를 만들기 위한 규칙 • 식별자는 반드시 영문자, 숫자, 밑줄 기호(_)만을 사용해야 한다. • 식별자의 첫 글자는 반드시 영문자 또는 밑줄 기호(_)로 시작해야 한다. 식별자는 숫자로 시작해서는 안된다. • 식별자에는 밑줄 기호(_)를 제외한 다른 기호를 사용할 수 없다. • 식별자는 대소문자를 구분해서 만들어야 한다. name, Name, NAME은 모두 다른 이름의 식별자로 간주한다. • C 언어의 키워드는 식별자로 사용할 수 없다. • 변수의 선언문은 다른 모든 문장보다 앞에 위치해야 한다. 3장. 변수와 데이터형

  11. 변수와 상수 • 식별자 규칙 • 키워드 예약어 3장. 변수와 데이터형

  12. 변수와 상수 • 변수 선언의 예 • 올바른 변수 선언 • 잘못된 변수 선언 3장. 변수와 데이터형

  13. 변수와 상수 • 변수 선언의 예 3장. 변수와 데이터형

  14. 변수와 상수 • 변수의 초기화 • 변수는 따로 초기화를 하지 않으면 쓰레기 값을 갖는다. 3장. 변수와 데이터형

  15. 변수와 상수 • 변수의 초기화 • 변수의 초기화(initialization) • 변수가 처음 메모리에 할당될 때 값을 지정한다. 3장. 변수와 데이터형

  16. 변수와 상수 • 변수의 초기화 • 변수의 초기화및 변수의 사용 방법 1: /* Ex03_01.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: int num1; 7: int num2 = 10; 8: 9: printf(" num1 = %d, num2 = %d\n ", num1, num2); 10: num1 = 100; 11: num2 = 200; 12: printf(" num1 = %d, num2 = %d\n ", num1, num2); 13: 14: return 0; 15: } 초기화된 정수형 변수 변수에 값 대입 초기화 되지 않은 정수형 변수 3장. 변수와 데이터형

  17. 변수와 상수 • 상수(Constant) • 리터널 상수 3장. 변수와 데이터형

  18. 변수와 상수 • 상수(Constant) • 여러가지 리터널 상수 1: /* Ex03_02.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: char ch = '\x41'; 7: int num = 0x7b; 8: unsigned int u_num = 123U; 9: long l_num = 1234567L; 10: double f_num1 = 12.34; 11: double f_num2 = 123.4567e-1; 12: float f_num3 = 12.34F; 13: 14: printf("ch = %c\n", ch); 15: printf("num = %d, %o, %x\n", num, num, num); 16: printf("u_num = %u\n", u_num); 17: printf("l_num = %d\n", l_num); 18: printf("f_num1 = %f, %e, %g\n", f_num1, f_num1, f_num1); 19: printf("f_num2 = %e\n", f_num2); 20: printf("f_num3 = %f\n", f_num3); 21: 22: return 0; 23: } 리터널 상수로 초기화된 변수 3장. 변수와 데이터형

  19. 변수와 상수 • 상수(Constant) • 출력에 사용되는 여러가지 문자열 3장. 변수와 데이터형

  20. 변수와 상수 • 매트로 상수 • #define문으로 정의되는 상수 • 매크로 상수의 사용 예 3장. 변수와 데이터형

  21. 변수와 상수 • 매트로 상수 • #define문은 전처리기에 의해서 처리된다. 3장. 변수와 데이터형

  22. 변수와 상수 • 상수(Constant) • 매크로 상수의 정의 및 사용 1: /* Ex03_03.c */ 2: #include <stdio.h> 3: 4: #define MAX 100 5: 6: int main(void) 7: { 8: int num1 = MAX; 9: int num2 = MAX - 1; 10: int num3 = -MAX; 11: 12: printf("num1 = %d\n", num1); 13: printf("num2 = %d\n", num2); 14: printf(“num3 = %d\n”, num3); 15: 16: printf("MAX = %d\n", MAX); 17: 18: return 0; 19: } MAX를 100으로 바꿔서 처리 매크로 상수 정의 “” 안의 MAX는 100으로 바뀌지 않음 3장. 변수와 데이터형

  23. 변수와 상수 • 상수(Constant) • #defne문은 C의 문장이 아니기 때문에 #defne문의 끝에는 세미콜론(;)이 필요 없다. 3장. 변수와 데이터형

  24. 변수와 상수 • const 변수 • 값을 변경할 수 없는 변수 • const 변수의 사용 예 3장. 변수와 데이터형

  25. 변수와 상수 • 상수(Constant) • const 변수의 선언 및 사용 1: /* Ex03_04.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: const double pi = 3.14; 7: const int max; 8: 9: printf("pi = %f\n", pi); 10: printf("max = %d\n", max); 11: 12: pi = 3.1415; 13: max = 100; 14: 15: return 0; 16: } Const 변수는 변경할 수 없다. Const 변수 선언 초기화 되지 않았음으로 쓰레기 값을 가짐 3장. 변수와 데이터형

  26. 변수와 상수 • 기호 상수의 장점 • 이름이 있는 상수를 기호 상수라고 한다. • 이름이 있는 상수를 사용하면 프로그램을 수정하기 쉽다. • 이름이 있는 상수를 사용하면 프로그램을 알아보기 쉽다. 3장. 변수와 데이터형

  27. 데이터형(Data Type) • C 프로그램에서 사용되는 모든 변수나 값은 정해진 데이터형을 갖는다. • 데이터형에 의해서 주어진 값의 이진표현이 결정된다. 3장. 변수와 데이터형

  28. 데이터형(Data Type) • 기본 데이터형(primitive data type) • 문자형 : char • 정수형 : short, int, long • 실수형 : float, double • 파생 데이터형(derived data type) • 배열, 포인터 • 사용자 정의형(user-defined data type) • 구조체, 공용체, 열거체 3장. 변수와 데이터형

  29. 데이터형(Data Type) • 문자형 • 문자의 ASCII 코드 확인 1: /* Ex03_05.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: char ch; 7: 8: scanf("%c", &ch); 9: printf("%c 문자의 ASCII 코드 : %d (%x)\n", ch, ch, ch); 10: 11: return 0; 12: } Char 형 변수 선언 ASCII 코드 출력 3장. 변수와 데이터형

  30. 데이터형(Data Type) • 특수문자 • ASCII 코드 중 특별한 용도로 사용되는 특수 문자(Escape sequence)는 ‘\’와 함께 표현한다. 3장. 변수와 데이터형

  31. 데이터형(Data Type) • 특수문자 • 특수문자 3장. 변수와 데이터형

  32. 데이터형(Data Type) • 특수문자 • ASCII 코드, MBCS, 유니코드 3장. 변수와 데이터형

  33. 데이터형(Data Type) • 정수형 • short형의 크기 ≤ int형의 크기 ≤ long형의 크기 • 정수형은 signed 형과 unsigned 형으로 나누어지는데, signed 키워드는 생략 가능하다. 3장. 변수와 데이터형

  34. 데이터형(Data Type) • 정수형의 표현 • 정수형 중 부호 있는 정수형은 최상위 비트를 부호 비트(sign bit)로 사용한다. • 부호 없는 정수형은 최상위 비트를 값을 저장하는 용도로 사용한다. 3장. 변수와 데이터형

  35. 데이터형(Data Type) • 정수형의 표현 • Singed와 unsigned 비교 Short 형 변수에 음수 -10 저장 음수이므로 최상위 비트가 1로 설정 1: /* Ex03_06.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: short num1 = -10; 7: unsigned short num2 = num1; 8: 9: printf("부호 있는 정수 : %d\n", num1); 10: printf("부호 없는 정수 : %d\n", num2); 11: 12: return 0; 13: } Unsigned short 형 변수에 -10 저장 최상위 비트가 1이지만 음수가 아닌 65526임 3장. 변수와 데이터형

  36. 데이터형(Data Type) • 데이터형의 유효 범위 • 유효범위 3장. 변수와 데이터형

  37. 데이터형(Data Type) • 정수형의 표현 • Short 형과 unsigned short 형의 오버플로우 확인 1 1: /* Ex03_07.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: short num1 = 32767; 7: short num2 = -32768; 8: unsigned short num3 = 65535; 9: unsigned short num4 = 0; 10: 11: num1 = num1 + 1; 12: num2 = num2 - 1; 13: num3 = num3 + 1; 14: num4 = num4 - 1; 15: 16: printf("num1 = %d\n", num1); 17: printf("num2 = %d\n", num2); 18: printf("num3 = %d\n", num3); 19: printf("num4 = %d\n", num4); 20: 21: return 0; 22: } 오버플로우 발생 Short 형의 최대값으로 초기화 Short 형의 최소값으로 초기화 Unsigned short형의 최대값으로 초기화 Unsigned short형의 최소값으로 초기화 3장. 변수와 데이터형

  38. 데이터형(Data Type) • 정수형의 표현 • 데이터 형의 유효 범위를 넘어서는 것 • 오버플로우 발생 시 항상 유효 범위 내의 값으로 설정되어 버린다. 3장. 변수와 데이터형

  39. 데이터형(Data Type) • 오버플로우 • Short형의 언더플로우 3장. 변수와 데이터형

  40. 데이터형(Data Type) • 오버플로우 • short형과 unsigned short형의 유효 범위 3장. 변수와 데이터형

  41. 데이터형(Data Type) • 오버플로우 • short형 유효 범위의 이진 표현 3장. 변수와 데이터형

  42. 데이터형(Data Type) • limits.h • limits.h의 내용을 정리 3장. 변수와 데이터형

  43. 데이터형(Data Type) • limits.h • Short 형과 unsigned short 형의 오버플로우 확인 2 1: /* Ex03_08.c */ 2: #include <stdio.h> 3: #include <limits.h> 4: 5: int main(void) 6: { 7: short num1 = SHRT_MAX; 8: short num2 = SHRT_MIN; 9: unsigned short num3 = USHRT_MAX; 10: unsigned short num4 = 0; 11: 12: num1 = num1 + 1; 13: num2 = num2 - 1; 14: num3 = num3 + 1; 15: num4 = num4 - 1; 16: 17: printf("num1 = %d\n", num1); 18: printf("num2 = %d\n", num2); 19: printf("num3 = %d\n", num3); 10: printf("num4 = %d\n", num4); 21: 22: return 0; 23: } SHRT_MAX 등의 매트로 상수가 정의된 헤더 포함 SHRT_MAX는 short형의 최대값 SHRT_MAX는 short형의 최소값 USHRT_MAX는 unsigned short형의 최대값 3장. 변수와 데이터형

  44. 데이터형(Data Type) • 실수형 • 실수의 표현 • 부동소수점 방식을 주로 사용 • 실수의 정밀도 : 단정도(float형)와 배정도(double형) 3장. 변수와 데이터형

  45. 데이터형(Data Type) • 실수형 • Float 형과 double 형의 정밀도 비교 1: /* Ex03_09.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: float pi1 = 3.141592653589793; 7: double pi2 = 3.141592653589793; 8: 9: printf("float 형의 pi 값 : %f\n", pi1); 10: printf("double 형의 pi 값 : %f\n", pi2); 11: 12: printf("float 형의 pi 값 : %30.25f\n", pi1); 13: printf("double 형의 pi 값 : %30.25f\n", pi2); 14: 15: return 0; 16: } “%f”는 소수점 이하 6자리까지 출력 “%30.25f”는 소수점 이하 25자리 출력 3장. 변수와 데이터형

  46. 데이터형(Data Type) • 실수의 오버플로우 • Float 형의 오버플로우와 언더플로우 1: /* Ex03_10.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: float num1 = 3.5e39; 7: float num2 = 1.8e-39; 8: 9: printf("num1 = %30.25f\n", num1); 10: printf("num2 = %30.25f\n", num2); 11: 12: return 0; 13: } Float형으로 표현할 수 없는 값 3장. 변수와 데이터형

  47. 데이터형(Data Type) • sizeof 연산자 • 주어진 값이나 데이터 형의 바이트 크기를 구한다. 3장. 변수와 데이터형

  48. 데이터형(Data Type) • sizeof 연산자 • Sizeof 연산자의 사용 1: /* Ex03_11.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: char ch; 7: int num; 8: double fnum; 9: 10: printf("ch 의 바이트 크기 : %d\n", sizeof ch); 11: printf("num 의 바이트 크기 : %d\n", sizeof num); 12: printf("fnum의 바이트 크기 : %d\n", sizeof fnum); 13: 14: printf("3.14f의 바이트 크기 : %d\n", sizeof 3.14f); 15: 16: printf("char 형의 바이트 크기 : %d\n", sizeof(char)); 17: printf("short 형의 바이트 크기 : %d\n", sizeof(short)); 18: printf("int 형의 바이트 크기 : %d\n", sizeof(int)); 19: printf("long 형의 바이트 크기 : %d\n", sizeof(long)); 20: printf("float 형의 바이트 크기 : %d\n", sizeof(float)); 21: printf("double 형의 바이트 크기 : %d\n", sizeof(double)); 22: 23: return 0; 24: } 값이나 데이터형의 크기를 구하려면 Sizeof 사용 3장. 변수와 데이터형

  49. 학습정리 • 변수와 상수 • 변수 : 값이 변경될 수 있는 데이터를 말하며, 값을 보관하기 위해서 메모리를 사용한다. • 상수 : 프로그램에서 값이 변경되지 않는 요소를 말하며, 리터럴 상수와 매크로 상수, const 변수가 있다. • 데이터 형 3장. 변수와 데이터형

  50. 3장. 변수와 데이터형 수고하셨습니다. 질문 있습니까? NEXT Chapter 4장. 연산자

More Related