1. 유도형 변수

유도형 변수는 기본형 변수의 조합에 의해 만들어지는 변수들을 말한다. 

데이터를 다양하게 정의하거나, 기본형 변수를 변형하는 등의 과정을 거쳐서 만들어지는 자료형들 이다. 

 

2. 배열

배열형 변수는 같은자료형의 변수들이 연속적으로로 나열된 형태의 데이터를 말한다.

C언어는 문자열 자료형이 따로없기 때문에 문자형 배열을 문자열로 사용한다.

​배열의 선언법

데이터타입 배열이름[크기]..;

ex) int num[10];

 

 

2. 포인터

포인터 변수는 메모리의 주소를 담는 변수를 말한다. 포인터는 메모리를 조작하여 다른지역의 변수의 값을 변경하거나, 포인터연산을 이용해 배열을 다룰수도 있다. 모든 포인터는 해당 컴퓨터환경의 1WORD의 크기이며, 32비트 컴퓨터는 4바이트의 크기를 갖게된다.

포인터의 선언법

데이터타입 *식별자;

ex) int *ptr;

 

3. 구조체

구조체변수는 배열과 달리 서로다른 데이터타입의 집합이다. 이때 구조체에 속하는 개별 변수들을 맴버라고 부른다. 기본형 변수뿐만아니라 구조체나 다른 유도형 변수들도 구조체 맴버로 올수있다. 구조체변수도 하나의 변수이기 때문에 이름을 가져야한다.

구조체 정의방법

struct 태그명

{

맴버;

}​;

구조체 변수 선언방법

struct 태그명 변수명;​

 

4. 공용체

공용체는 구조체와 같지만 공용체의 모든 맴버가 메모리 공간을 함께 공유하는 형태를 말한다. 이때 공용체 타입의 크기는 타입이 가장 큰맴버의 크기와 같다.

공용체 정의방법

union 태그명

{

맴버​;

….

}​;

공용체 변수 선언방법

union 태그명 변수명;

 

5. 열거형

열거형은 정수의 값을 순서대로 나열하는 형태의 변수를 말한다. 열거형의 맴버는 타입을 기재하지 않으며, 특별히 정의되지 않는 한 첫번째 맴버는 0이며, 다른 맴버들은 목록상 순서대로 +1의 값을 가진다.

열거형 정의방법

enum

{

  맴버..;

};

 

 

6. 사용자 정의형

사용자 정의형은 위와같은 유도형 이나, 기본형의 데이터타입을 새로운이름의 타입으로 정의하는 방법이다.

사용자정의방법

typedef 타입명 새로운타입명;