* 자료형 Data Type

 

- 메모리(RAM)에 저장하기 위해서는 반드시 장소를 지정해야 한다
   (메모리할당을 해야 한다)

- 할당된 메모리에 저장하고자 하는 값이
   어떤 형식의 값인지에 따라 데이터 타입을 지정해야 한다.
   이것을 자료형이라 한다

- 할당된 메모리에 이름 붙여서 접근을 하면 되는데
   이것을 변수명이라 한다.

- 변수명은 반드시 자료형과 함께 선언하고 사용해야 한다

- 변수는 새로운 값이 대입이되면,
   기존에 가지고 있던 값은 없어진다


1. 정수형 (int)
- 소수점이 없는 숫자값
- int
   .메모리 2바이트 할당

- long int (long만 써도 사용가능)
   .메모리 4바이트 할당


int kor; //kor 정수형 변수를 선언
int eng,mat; //정수형 변수 2개 동시 선언

// = 연산자 이용해서 변수에 값을 대입
kor=80;
printf("%d %d\n",5,kor);

kor=57;
printf("국어점수=%d\n",kor);

eng=80;
mat=90;

int aver=(kor+eng+mat)/3; //평균구하기

//       = 57 + 80 + 90/3

//산술연산자우선순위
// * / -> + -
//모든 연산자들 중에서 최우선 연산자 ( )
//모든 연산자들 중에서 마지막 연산자 =

printf("국어:%d\n",kor);
printf("영어:%d\n",eng);
printf("수학:%d\n",mat);
printf("평균:%d\n",aver);


//변수의 주소값을 출력 &변수명
printf("kor변수의 주소=%u\n",&kor); //%u양수값으로만 출력
printf("eng변수의 주소=%u\n",&eng);
printf("mat변수의 주소=%u\n",&mat);


//자료형의 메모리 크기
printf("int형의 메모리 크기 = %d\n",sizeof(int));
printf("long형의 메모리 크기 = %d\n",sizeof(long));
printf("float형의 메모리 크기 = %d\n",sizeof(float));
printf("double형의 메모리 크기 = %d\n",sizeof(double));

 

 

2. 정수형 (long)

long age=5;
printf("age=%ld\n",age); //long형 출력

//상수값 뒤에 L을 붙이면 long형이라는 의미
printf("long형의 메모리 크기 = %d\n",sizeof(5L));

 


3. 실수형 (float)
- 소수점을 가지고 있는 값을 지칭함
- 약 소수점 7자리까지 표현 가능

float height=123.456;
printf("height=%f\n",height);

 


4. 실수형 (double)
- 소수점 15자리정도까지 표현 가능
double d=123.45;
printf("d=%lf\n",d);

 

 

5. 문자형 (char)
- 문자 1글자당 메모리 1바이트 할당

char ch='B';
printf("ch=%c\n",ch);
printf("char형의 메모리크기=%d\n",sizeof(char));

printf("ch=%d\n",ch);

- %d와 %c는 서로 호환가능하다
- 이유? 아스키코드값이 있기 때문이다.

- 아스키코드(ASCII Code)란?
  . 미국에서 정한 코드표로 코드표에 있는 문자에
    10진 정수값을 부여한 코드
  . 코드표에 있는 문자는 대략 키보드에 있는 글자를 가르킨다.
  . 키보드의 방향키의 아스키코드값이 얼마인지 검색?

- spacebar의 아스키코드
printf("spacebar의 ASCII Code=%d",' ');

- 소문자 'a'의 아스키코드
printf("소문자 'a'의 아스키코드=%d",'a');

- 대문자 'A'를 소문자 'a' 출력
printf("%c\n",'A'+32);
printf("%c\n",'d'-32);

 


6. 문자열형
- char형을 조합해서 문자열형을 만들어 쓰면 된다
- 메모리의 크기는 대입하고자 하는 최소한 문자갯수+1 주어야 한다
   글자갯수보다 작거나 동일하게 주면 안된다
- 문자열의 인덱스(순서)는 0부터 카운트가 시작된다

- %s는 null문자 만날때 까지
   null문자? 문자열의 끝을 가르키는 값이다. \0

   char str[4]="SKY\0"

   null문자는 메모리만 할당되면 자동으로 추가된다.
   char str[3]="SKY"
   char str[4]="SKY"

char str[6]="HAPPY";
printf("str=%s\n",str);
printf("str변수의 메모리 크기=%d\n",sizeof(str));
printf("str[0]=%c\n",str[0]);

 

#######################################################

 

#include <stdio.h>

void main()
{

/*
   int kor; //kor 정수형 변수를 선언
   int eng,mat; //정수형 변수 2개 동시 선언

   // = 연산자 이용해서 변수에 값을 대입
   kor=80;
   printf("%d %d\n",5,kor);

   kor=57;
   printf("국어점수=%d\n",kor);

   eng=80;
   mat=90;

   int aver=(kor+eng+mat)/3; //평균구하기
   printf("국어:%d\n",kor);
   printf("영어:%d\n",eng);
   printf("수학:%d\n",mat);
   printf("평균:%d\n",aver);

   //변수의 주소값을 출력 &변수명
   printf("kor변수의 주소=%u\n",&kor); //%u양수값으로만 출력
   printf("eng변수의 주소=%u\n",&eng);
   printf("mat변수의 주소=%u\n",&mat);


   //자료형의 메모리 크기
   printf("int형의 메모리 크기 = %d\n",sizeof(int));
   printf("long형의 메모리 크기 = %d\n",sizeof(long));
   printf("float형의 메모리 크기 = %d\n",sizeof(float));
   printf("double형의 메모리 크기 = %d\n",sizeof(double));

*/

/*
  long age=5;
  printf("age=%ld\n",age); //long형 출력
  printf("long형의 메모리 크기 = %d\n",sizeof(5L));

*/

/*
float height=123.456;
printf("height=%f\n",height);
printf("height=%.2f\n",height);
printf("height=%10.2f\n",height);
printf("height=%.15f\n",height);

double d=123.45;
printf("d=%lf\n",d);
printf("d=%.15lf\n",d);
*/

 /*
char ch='B';
printf("ch=%c\n",ch);
printf("char형의 메모리크기=%d\n",sizeof(char));

printf("ch=%d\n",ch);

printf("spacebar의 ASCII Code=%d",' ');

printf("소문자 'a'의 아스키코드=%d",'a');

printf("%c\n",'A'+32);
printf("%c\n",'d'-32);

*/

char str[6]="HAPPY";
printf("str=%s\n",str);
printf("str변수의 메모리 크기=%d\n",sizeof(str));

}

 

---------------------------------------------------

 

 

 

'..열심히 공부하세.. > C 입문' 카테고리의 다른 글

[05] switch~case문  (0) 2012.05.22
[04] 제어문 (if 조건문)  (0) 2012.05.21
[02] 출력서식문자  (0) 2012.05.15
[01] C언어 개론  (0) 2012.05.15
3) 연산자  (0) 2006.08.16

+ Recent posts