본문 바로가기

2학년/C

[C] 변수와 연산자(1)

변수

 데이터를 저장하기 위해서는 시스템으로부터 메모리의 주소와 이름을 갖는 "변수"를 선언해야 한다.  변수는 데이터를 담을 수 있는 그릇이고, 그릇의 이름이 곧 변수명이다. 변수를 선언하면 시스템은 메모리상에서 데이터를 담을 수 있는 그릇을 제공해준다.

 

1. 데이터타입

C언어의 기본 데이터타입은  1) 부호 있는 정수형 2) 부호 없는 정수형 3) 문자형 4) 실수형으로 구성된다.

  정수형 데이터타입 short (2byte), int (4byte), long (4byte)이, 

  문자형 데이터타입은 char (1byte)가, 

  실수형 데이터타입은 float (4byte), double(8byte)이 존재한다. 

한편, short / int / long 자료형 앞에 'unsigned'라는 키워드를 붙이면 음수를 표현할 수 없게 되지만 표현 가능한 양수형 정수 범위가 2배 늘어나게 된다. 

 

 2. 오버플로우, 언더플로우

  데이터타입의 유효범위를 벗어나면 비트값의 손실로부터 오버플로우 또는 언더플로우가 발생한다. 

  오버플로우 : 자료형에 저장할 수 있는 최대 범위보다 큰 수 저장  -> 순환된 값을 출력한다. 즉 -128~127 사이에서 128을 입력하면 -128 이 나온다. 

  언더플로우 : 자료형에 저장할 수 있는 최소 범위보다 작은 수 저장

 

 3.변수와 상수

   변수 

   할당받은 메모리 공간에 해당 타입의 데이터를 저장하지 않으면 데이터의 변형 및 손실이 일어날 수 있다. 초기화되지 않은 변수를 사용해도 사용자가 의도하지 않은 결과를 출력한다. 

 

  상수

 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미하나 프로그램이 실행되는 동안 저장된 데이터를 변경할 수 없다. (즉, 정의되면 이후 대입연산자의 사용이 불가능)  2가지 종류가 존재한다. 

1. 리터럴 상수 : 데이터가 저장된 메모리 공간을 가리키는 이름을 가지고 있지 않는다 (123,3.14,'a' 등) 

2. 심볼릭 상수 : 변수처럼 일므을 가지고 있는 상수. 반드시 선언과 동시에 초기화해야한다. (const 키워드 또는 매크로(#define) 이용) 

  * #define은 전처리 구문으로, main 함수보다 먼저 코드 최상단에 정의되어야한다. 

  * const 문은 전역변수 / 지역변수 어디서든 정의가 가능하며, 자료형 앞 뒤 어디에 붙으나 똑같이 수행된다. ( int const x == const int x) 

 

 

 

  

 

 

 

 

'2학년 > C' 카테고리의 다른 글

[C]변수와 연산자(4)  (0) 2023.07.22
[C]변수와 연산자(3)  (0) 2023.07.21
[C]변수와 연산자(2)  (0) 2023.07.20
[C] 입출력  (0) 2023.07.18
c언어와 컴파일 과정  (0) 2023.07.17