..열심히 공부하세../C 입문

2) 자료형 Data Type

댄스댄스 2006. 7. 19. 11:49

 

* 값 value의 형태

 

1. 상수 constant
   - 절대 변하지 않는 값
   문자상수 - 'A' 'b'
   숫자상수 - 5 3

 

2. 변수 variable
  - 늘 변하는 값
  - 대입되는 값에 따라서 늘 변할수 있다.
  - 메모리에 장소를 지정해야만 사용할 수 있다.
  - 해당 메모리 장소에 이름을 붙여주어야 사용가능하다->변수선언

 

3. 변수명을 작성하는 규칙
    - 어떤값을 대입을 할 것인지에 대한 의미를 부여한다
    - 한글로 변수명을 작성할 수 없다
    - 첫글자로 숫자를 사용할 수 없다
    - 변수명은 대소문자를 엄격히 구분한다
    - 해당변수에 대입하고자 하는 값의 자료형을 반드시 기재해야 한다
    - 변수선언 형식) 자료형 변수이름

 

//////////////////////////////////////////////////////////////////////////////

 

1. 정수형 int / long int

 

int->메모리 4바이트 할당 %d 출력

ling int->메모리 4바이트 할당. %ld 출력 그냥 long이라 써도 됨.

unsigned int -> %u

unsigned long -> %lu

 

예)

void main()

{

   int a,b,sum; //a, b, sum 정수형 변수 선언

   a=10; //a변수에 정수값 10 대입

   b=20; //b변수에 정수값 20 대입 

   sum=a+b; //sum변수에 10+20의 결과값 30대입

   printf("%d+%d=%d\n",a,b,sum);

 

   printf("#%d#\n",123);      //#123#

   printf("#%5d#\n",123);    //#  123# 5칸잡고 뒤에서 부터 찍어라. 앞에2칸 공백

   printf("#%-5d#\n",123);  //#123  #5칸잡고 앞에서 부터 찍어라. 뒤에2칸 공백

   printf("#%2d#\n",123);   //#123# 2만 무시됨.

   printf("%d  %d\n",sizeof(int), sizeof(long));

}

 

///////////////////////////////////////////////////////////////////////////

 

2. 실수형 float / double

float -> 메모리 4바이트 할당 %f 출력. 소수점 7자리 표현

double -> 메모리 8바이트 할당 %lf 출력. 소수점 15자리 표현

 

예)

void main()

{

   printf("%d  %d\n",sizeof(float), sizeof(double));

 

   double height=167.8;

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

 

   printf("#%f#\n",123.45);          //#123.450000#

   printf("#%.2f#\n",123.45);       //#123.45#

   printf("#%10.2f#\n",123.45);    //#   123.45#

   printf("#%-10.2f#\n",123.45);  //#123.45   #

   printf("#%5.2f#\n",123.45);     //#123.45# 5만 무시됨

   printf("#%.0f#\n",123.45);      //#123#

}

 

//////////////////////////////////////////////////////////////////////////

 

3. 문자형(문자열 포함) char

char -> 메모리 1바이트 할당 %c 출력

char name[10] -> 메모리 10바이트 할당 %s 출력

 

예)

void main()

{

    char ch='B'; //1바이트 문자. ''로 감쌈.

    char name[20]="HongGilDong";//최대19글자까지 가능. 널문자('\0')공간을 남겨놓아야 함.""감쌈

    printf("%d  %d\n",sizeof(ch), sizeof(name));

    printf("ch=%c\tname=%s\n",ch,name);

}

 

//////////////////////////////////////////////////////////////////////////

 

ps.

아스키코드값이 있기 때문에 %c와 %d는 서로 호환할 수 있다.

void main()

{

    printf("%d  %d\n",'A','B');

    printf("%d  %d\n",'a','b');

 

    printf("%c  %c\n",65,66);

    printf("%c  %c\n",97,98);

 

    printf("%c  %c\n",'A'+32,'a'-32); //대소문자 바꿔 출력하기

    printf("%c  %c\n",toupper('A'),toupper('a')); //내장함수 사용하여 대소문자 바꾸기

}