201303/정수형. scanf()함수. sizeof()연산자.

2013. 4. 3. 16:38프로그래밍/C언어 TIP

◎ 정수형 (Integer Type)

 주석

주석처리는 // 나 / *  * /로 지정해준다.

// unsigned int iNum ; 〓≫ 앞에 //가 붙으면 그 줄은 컴파일할 때 처리하지 않음. //가 한 줄을 주석 처리하는 기호라면 여러 줄을 주석 처리할 때는 처음에 / *를 쓰고 주석처리가 될 문장 끝에 */라고 마무리하면 안에 들어가 있는 문장이 모두 주석으로 처리된다.

   

  임의값

임의값은 메모리에 변수를 지정하고 수를 넣기 전에 들어가 있는 의미없는 값을 얘기한다. 한마디로 메모리에 가치를 부여하는 순간 값은 의미를 가지게 된다. 

char cNum ; 〓≫ 메모리에 cNum이라는 이름의 1바이트 공간을 할당. 여기에 들어 있는 8비트 공간의 수가 바로 임의 값, 쓰레기 값이라고 한다.

cNum = 10 ; 〓≫ 메모리에 8비트 공간을 할당받은 cNum에 상수 10을 넣어주는데, 제일 처음 넣은 값을 초기화라고 한다.

표기 방법에 따라 char cNum = 10 ; 이라고도 쓸수 있는데, 위에 것과 같은 의미를 가지며, 변수선언과 초기화(데이터)가 함께 일어난다.

 

 scanf() 함수

scanf함수는 표준입출력에 해당하는 키보드의 입력을 받아 값을 부여하는 함수이다. scanf("%d", &number) ; 〓≫ 키보드로부터 10진수를 입력받아 number에 넣으라는 명령문이다. scanf함수는 상수와 엔터키의 입력을 기다리게 되는데, 프로그램이 진행하지 않고 멈춰있는 것을 block이라고 하고 scanf는 printf와 달리 %d에 \n이 와서는 안 된다.

<stdio.h>는 입력 input의 i와 출력 output의 o와 표준(standard)의 std를 혼합하여

stdio라는 표준입출력을 만들게 된 것이다. 마우스는 표준입출력에 해당되지 않는다. 그 이유는 표준을 정할 때 마우스는 보편적이지 않았었고, 마우스는 키보드처럼 입력이 다양하지 않아 입력을 구분하기 힘들기 때문이다.

 


◎ 파생된 정수형

정수형

바이트 크기

범위

(signed) int

4

-2,147,483,648 ~ 2,147,483,647

unsigned (int)

4

0 ~ 4,294,967,295

short (int)

2

-32,768 ~ 32,767

unsigned short (int)

2

0 ~ 65,535

(signed) long (int)

4

-2,147,483,648 ~ 2,147,483,647

unsigned long (int)

4

0 ~ 4,294,967,295

 

 sizeof()

컴퓨터에서의 각 자료형의 크기를 나타내 주는 연산자이다. 구문형식

sizeof (자료형);

sizeof (변수);

sizeof (수식);

《 printf("The size of int is %3d bytes.\n" sizeof (int)) ; 》sizeof의 사용예

int라는 자료형의 크기를 출력하는 명령문이다. 여기서 주위깊게 봐야 할 부분은 바로 %3d라는 부분이다. 보통 10진수를 출력하기 위해 %d를 사용한다. 3은 왜 들어 있는 것일까? 3은 세자리만큼의 공간을 얘기한다. 한자리 수를 출력하면 앞에 두자리는 비워진 상태로 출력된다. 아래의 소스로 확인해보자.

 

#include <Stdio.h>

int main()

{

        int x;

          

        printf("%5d.\n",111); 

        printf("%4d.\n",111); 

        printf("%2d.\n",111);

        printf("%d.\n",111);

        printf("%-5d.\n",111);

        printf("%-4d.\n",111);

        printf("%-2d.\n",111);

        printf("%-d.\n",111);

        return 0;

}

결과화면

위에 그림처럼 출력하자고 하는 수가 공간을 벗어나게 되면 %2d는 의미 없어진다. 출력이 단지 빈공간이 안 생기게 되는 것이다. %-2d는 옆에 공간이 없이 모든 수가 출력되게 된다. -(마이너스)기호를 붙이면 수는 왼쪽에서부터 출력되어 오른쪽에 빈공간이 남게 된다. 마이너스 없이 %2d를 출력하면 오른쪽에서부터 수가 출력되어 왼쪽에 빈공간이 생긴다. 하지만 출력하고자 하는 수가 범위를 넣으면 오른쪽, 왼쪽의 빈 공간 없이 수는 모두 출력된다.

 

◎정수형 상수의 표기

상수는 영어로 constant라고 하며 앞에 다섯글자를 따 const라는 예약어로 사용되고 있다. 상수는 변하지 않는 수를 말하며, 일반적으로 변수에 사용되는 숫자나 문자 등을 상수라 총칭하며, 숫자의 표기 때 자리수를 나타내는 콤마(,)를 사용하지 않는다.

C언어에서는 정수형 상수는 10진수 이외에 8진수나 16진수로도 표기할 수 있다.

16진수는 숫자 앞에 0x나 0X를 붙이고 8진수는 0을 붙힌다.

  8진수와 16진수를 10진수로 화면에 출력하는 프로그램의 print문이다.

 

printf("The decimal value of 020 & 0x20 is %5d & %3d.\n", 020, 0x20);

결과는

The docimal value of 020 & 0x20 is 16 & 32로 출력된다.

'프로그래밍 > C언어 TIP' 카테고리의 다른 글

201303/연산자. 형변환(type casting).  (0) 2013.04.03
201303/문자형. 문자열.  (0) 2013.04.03
201303/실수형. 형식지정자 %u.  (0) 2013.04.03
201303/자료형  (0) 2013.04.03
201303/보수/1의보수와 2의보수  (0) 2013.04.03