3 include stdio h int mainvoid int num

  • Slides: 56
Download presentation
3장. 변수와 데이터형 #include <stdio. h> int main(void) { int num; printf(“Please enter an

3장. 변수와 데이터형 #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 = %dn", num); return 0; } 1

변수와 상수 § 상수(Constant) 여러가지 리터널 상수 01: /* Ex 03_02. c */ 02:

변수와 상수 § 상수(Constant) 여러가지 리터널 상수 01: /* Ex 03_02. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { 06: char grade = 'x 41'; 07: int data = 0 x 7 b; 08: unsigned int age = 75 U; 09: long file. Size = 1234567 L; 10: double area = 123. 25; 11: double tax. Rate = 25 e-2; 12: float temperature = 17. 5 F; 13: 14: printf("grade = %cn", grade); 15: printf("data = %d, %o, %xn", data, data); 16: printf("age = %un", age); 17: printf("file. Size = %dn", file. Size); 18: printf("area = %f, %e, %gn", area, area); 19: printf("tax. Rate = %fn", tax. Rate); 20: printf("temperature = %fn", temperature); 21: 22: return 0; 23: } 3장. 변수와 데이터형 리터널 상수로 초기화된 변수 20

변수와 상수 § 상수 매크로 상수의 정의 및 사용 01: /* Ex 03_03. c

변수와 상수 § 상수 매크로 상수의 정의 및 사용 01: /* Ex 03_03. c */ 02: #include <stdio. h> 03: 04: #define MAX 100 05: 06: int main(void) 07: { 08: int num 1 = MAX; 09: int num 2 = MAX - 1; 10: int num 3 = -MAX; 11: 12: printf("num 1 = %dn", num 1); 13: printf("num 2 = %dn", num 2); 14: printf(“num 3 = %dn”, num 3); 15: 16: printf("MAX = %dn", MAX); 17: 18: return 0; 19: } 매크로 상수 정의 MAX를 100으로 바꿔서 처리 “” 안의 MAX는 100으로 바뀌지 않음 3장. 변수와 데이터형 25

변수와 상수 § 상수(Constant) const 변수의 선언 및 사용 01: /* Ex 03_04. c

변수와 상수 § 상수(Constant) const 변수의 선언 및 사용 01: /* Ex 03_04. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { 06: const double pi = 3. 14; 07: const int max; 08: 09: printf("pi = %fn", pi); 10: printf("max = %dn", max); 11: 12: pi = 3. 1415; 13: max = 100; 14: 15: return 0; 16: } const 변수 선언 초기화 되지 않았음으로 쓰레기 값을 가짐 const 변수는 변경할 수 없다. 3장. 변수와 데이터형 28

데이터형(Data Type) § 문자형 문자의 ASCII 코드 확인 01: /* Ex 03_05. c */

데이터형(Data Type) § 문자형 문자의 ASCII 코드 확인 01: /* Ex 03_05. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { Char 형 변수 선언 06: char ch; 07: 08: scanf("%c", &ch); 09: printf("%c 문자의 ASCII 코드 : %d (%x)n", ch, ch); 10: 11: return 0; 12: } 3장. 변수와 데이터형 ASCII 코드 출력 33

데이터형(Data Type) § 정수형의 표현 signed와 unsigned 비교 01: /* Ex 03_06. c */

데이터형(Data Type) § 정수형의 표현 signed와 unsigned 비교 01: /* Ex 03_06. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { 06: short num 1 = -10; 07: unsigned short num 2 = num 1; 08: 09: printf("부호 있는 정수 : %dn", num 1); 10: printf("부호 없는 정수 : %dn", num 2); 11: 12: return 0; 13: } short 형 변수에 음수 -10 저장 음수이므로 최상위 비트가 1로 설정 unsigned short 형 변수에 -10 저장 최상위 비트가 1이지만 음수가 아닌 65526임 3장. 변수와 데이터형 39

데이터형(Data Type) § 정수형 short 형과 unsigned short 형의 오버플로우 확인 1 01: /*

데이터형(Data Type) § 정수형 short 형과 unsigned short 형의 오버플로우 확인 1 01: /* Ex 03_07. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { 06: short num 1 = 32767; 07: short num 2 = -32768; 08: unsigned short num 3 = 65535; 09: unsigned short num 4 = 0; 10: 11: num 1 = num 1 + 1; 12: num 2 = num 2 - 1; 13: num 3 = num 3 + 1; 14: num 4 = num 4 - 1; 15: 16: printf("num 1 = %dn", num 1); 17: printf("num 2 = %dn", num 2); 18: printf("num 3 = %dn", num 3); 19: printf("num 4 = %dn", num 4); 20: 21: return 0; 22: } short 형의 최대값으로 초기화 short 형의 최소값으로 초기화 unsigned short형의 최대값으로 초기화 unsigned short형의 최소값으로 초기화 오버플로우 발생 3장. 변수와 데이터형 41

데이터형(Data Type) § limits. h short 형과 unsigned short 형의 오버플로우 확인 2 01:

데이터형(Data Type) § limits. h short 형과 unsigned short 형의 오버플로우 확인 2 01: /* Ex 03_08. c */ 02: #include <stdio. h> SHRT_MAX 등의 매트로 상수가 정의된 헤더 포함 03: #include <limits. h> 04: 05: int main(void) 06: { SHRT_MAX는 short형의 최대값 07: short num 1 = SHRT_MAX; SHRT_MAX는 short형의 최소값 08: short num 2 = -SHRT_MIN; 09: unsigned short num 3 = USHRT_MAX; USHRT_MAX는 unsigned short형의 최대값 10: unsigned short num 4 = 0; 11: 12: num 1 = num 1 + 1; 13: num 2 = num 2 - 1; 14: num 3 = num 3 + 1; 15: num 4 = num 4 - 1; 16: 17: printf("num 1 = %dn", num 1); 18: printf("num 2 = %dn", num 2); 19: printf("num 3 = %dn", num 3); 20: printf("num 4 = %dn", num 4); 22: 23: return 0; 24: } 3장. 변수와 데이터형 47

데이터형(Data Type) § 실수형 float 형과 double 형의 정밀도 비교 01: /* Ex 03_09.

데이터형(Data Type) § 실수형 float 형과 double 형의 정밀도 비교 01: /* Ex 03_09. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { 06: float pi 1 = 3. 141592653589793; 07: double pi 2 = 3. 141592653589793; 08: 09: printf("float 형의 pi 값 : %fn", pi 1); 10: printf("double 형의 pi 값 : %fn", pi 2); 11: 12: printf("float 형의 pi 값 : %30. 25 fn", pi 1); 13: printf("double 형의 pi 값 : %30. 25 fn", pi 2); 14: 15: return 0; 16: } 3장. 변수와 데이터형 “%f”는 소수점 이하 6자리까지 출력 “%30. 25 f”는 소수점 이하 25자리 출력 49

데이터형(Data Type) § 실수형 float 형의 오버플로우와 언더플로우 01: /* Ex 03_10. c */

데이터형(Data Type) § 실수형 float 형의 오버플로우와 언더플로우 01: /* Ex 03_10. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { 06: float num 1 = 3. 5 e 39; 07: float num 2 = 1. 8 e-39; 08: 09: printf("num 1 = %30. 25 fn", num 1); 10: printf("num 2 = %30. 25 fn", num 2); 11: 12: return 0; 13: } Float형으로 표현할 수 없는 값 3장. 변수와 데이터형 50

데이터형(Data Type) § sizeof 연산자의 사용(1/2) 01: /* Ex 03_11. c */ 02: #include

데이터형(Data Type) § sizeof 연산자의 사용(1/2) 01: /* Ex 03_11. c */ 02: #include <stdio. h> 03: 04: int main(void) 05: { 06: char ch; 07: int num; 08: double fnum; 09: 10: printf("ch 의 바이트 크기 : %dn", sizeof ch); 11: printf("num 의 바이트 크기 : %dn", sizeof num); 12: printf("fnum의 바이트 크기 : %dn", sizeof fnum); 13: 14: printf("3. 14 f의 바이트 크기 : %dn", sizeof 3. 14 f); 15: 3장. 변수와 데이터형 변수나 상수의 크기를 구하려면 sizeof 연산자 이용 52

데이터형(Data Type) § sizeof 연산자의 사용(2/2) 16: 17: 18: 19: 20: 21: 22: 23:

데이터형(Data Type) § sizeof 연산자의 사용(2/2) 16: 17: 18: 19: 20: 21: 22: 23: 24: } printf("char 형의 바이트 크기 : %dn", sizeof(char)); printf("short 형의 바이트 크기 : %dn", sizeof(short)); printf("int 형의 바이트 크기 : %dn", sizeof(int)); printf("long 형의 바이트 크기 : %dn", sizeof(long)); printf("float 형의 바이트 크기 : %dn", sizeof(float)); printf("double 형의 바이트 크기 : %dn", sizeof(double)); 데이터형의 크기를 구하려면 sizeof 이용 return 0; 3장. 변수와 데이터형 53