본문 바로가기
프로그래밍/C

[C언어] 문자 자료형 / 상수 / 입력( scanf ) / 증감 연산자 / 자료형 확장, 축소

by B T Y 2017. 10. 12.
반응형

문자 자료형 / 상수 / 입력( scanf ) / 증감 연산자 / 자료형 확장, 축소에 대해서 정리한다.




문자 자료형


 - char를 이용해서 하나의 문자를 저장가능

   ( 부호없는 char는 보통 바이트 단위 데이터를 저장한다 )


 - C언어에서는 작은따옴표를 이용해서 문자 하나를 묶는다.

   ( 작은따옴표를 이용해서 문자열을 묶을수는 없다 )


 - char에 문자를 저장할 때는 문자 자체를 저장하지 않고 문자에 해당하는 정수값(ASCII)으로 저장된다.

   ( 서식지정자 %d를 이용해서 char 자료형 변수에 저장된 값을 불러오면 ASCII 코드의 10진수 값이 나온다 )


 - char 문자에 있는 값을 서식지정자 %x를 이용해 16진수로 불러올때는 10진수와 헷갈리지 않도록 

   서식지정자 앞에 0x를 붙여준다.

   ( 8진수의 경우에는 서식지정자 앞에 0을 붙여준다 )












    문자로 연산하기


        - 문자는 ASCII 코드 규칙에 의해 정수로 저장되기 때문에 정수처럼 덧셈, 뺄셈 등이 가능하다.





    제어 문자 사용하기


        - 숫자나 알파벳 이외에도 제어 문자도 저장해서 사용할 수 있다.






상수


  - 변하지 않는 값

  - 값이 의도하지 않게 바뀌는 것을 방지하기 위해 상수를 사용


  - 'const 자료형 변수명 = 값' 형식으로 사용한다.

  - 선언과 동시에 값을 초기화 해줘야한다.


  - 정수나 실수 뒤에 접미사를 붙여서 크기를 명시해줄 수 있다.






입력( scanf )



  - 콘솔에서 입력하는 방식을 표준 입력(standard input, stdin), 출력하는 방식을 표준 출력(standard output,stdout)

  - scanf(서식지정자, 변수의 주소)

     ( <stdio.h> 파일안에 선언되어 있다 )

       * 변수의 주소를 입력할때는 앞에 &를 붙여준다.


  - visual studio에서만 #define _CRT_SECURE_NO_WARNINGS를 정의해줘야 한다.

   ( scanf의 경우 입력값의 길이를 설정할수 없기 때문에 보안에 취약한 부분이 있어 visual studio에서는 에러가 발생한다 )

     * scanf 보안 경고로 인한 컴파일 에러 방지를 위해 #define _CRT_SECURE_NO_WARNINGS를 정의해준다.


  - 한번에 여러개를 입력 받을때는 입력 받을만큼 서식지정자 갯수를 적어주고 scanf()안에 변수의 주소를 ,로 구분한다.

  - scanf()에서 입력받는 변수의 자료형을 double로 선언했으면 서식지정자를 %lf로 주고 

    long double로 선언했다면 %Lf를 적어줘야한다.


  - scanf() 대신에 getchar() 함수를 이용해서 문자를 입력받고 putchar() 함수를 이용해서 문자를 화면에 출력할 수 있다.




증감 연산자 ( ++, -- )


  - ++는 값을 1 증가시키는 연산자이고 --는 값을 1 감소시키는 연산자

  - 증감 연산자는 변수 앞이나 뒤에 붙여서 사용가능하다.

  - 실수에서 증감연산자를 사용하면 정수 부분만 영향을 미치고 소수점 자리에는 영향을 미치지지 않는다.

  - 증감 연산자에서 가장 큰 특징은 증감 연산자를 사용한 변수를 다른 변수에 저장할때 나타난다.

    ( 예를 들어서 num1이라는 변수를 증가 연산자를 이용해서 num3이라는 변수에 저장하려고 할때 

     후위(postfix) 연산자를 사용했다면 num3에는 num1의 현재 값이 들어가고 num1은 1이 증가되는 결과가 나온다 )


     * 전위(prefix) 연산자를 사용하면 저장하려는 변수와 증감 연산자를 사용한 변수 모두 같은 값을 가지게 된다.

     * 증감 연산자의 이러한 특징은 prinf()를 이용해서 출력할때도 마찬가지로 적용된다.














나머지 연산


  - % 연산자를 이용해서 나머지를 구하는데 사용

  - 특정수의 배수인지를 확인할때 자주 사용한다.






자료형 확장( type promotion )


  - 서로 다른 자료형끼리 연산을 할 때는 정해진 규칙을 따른다.

    ( 예를 들어서 정수와 실수를 함께 연산하면 실수가 정수보다 표현범위가 넓기 때문에 결과가 실수로 나오게 된다 )


  - 표현 범위가 넓은 쪽으로 자료형이 확장된다.

  - 자료형 종류는 같지만 자료형의 크기가 서로 다르다면 크기가 큰쪽으로 형 확장이 일어난다.

    ( 예를 들면 int보다 long long이 자료형 크기가 크기 때문에 long long으로 변환된다 )


  - 컴파일러에서 암시적 형 변환(implicit type conversion)을 한다.








자료형 축소( type demotion )


  - 자료형의 크기가 작은쪽( 표현범위가 좁은 쪽)으로 변환되는 것을 형 축소

  - 형 축소가 일어나면 값의 손실이 일어난다.







반응형

댓글