본문 바로가기

프로그래밍/C언어

[C언어 with Java] 배열에 대해서 알아보자.

 

C Prog. with Java


C언어를 다루고 있지만, 다른 프로그래밍 언어인 자바와 비교하면서 내용을 구성하고 합니다. 본 글은, 자바를 먼저 어느정도 알고 계시고, 저와 같이 C언어를  공부하고자 하는 분들에게 도움이 되길 바랍니다.

 


 우선, 자바를 보도록 할게요.

자바에서는 배열 선언을 다음과 같이 두가지 방식으로 나타낼 수 있습니다.

1. 타입 변수명[]

2. 타입[] 변수명

 

 여기서 1번의 경우는 C언어 방식으로, C언어 사용자를 배려하기 위한 방식으로 생각됩니다.

 

 이클립스를 쓰게 되면 다음과 같이 main 메소드를 만드는데요.

public class Test{

public static void main(String[] args){

바디

}

}

 

 경우에 따라서는, 레퍼런스나 강의자의 스타일에 따라, 다음과 같이 쓰이기도 합니다.(이 스타일은 C 스타일~)

public class Test{

public static void main(String args[]){

바디

}

}

 

 C언어에서는 자바와 동일하게 다음과 같이 데이터 선언이 가능합니다.

 

첫번째는 배열의 길이와 함께 그 크기만큼 데이터를 선언해 준 것이구요.

두번째는 배열의 길이를 선언하지 않고, 선언된 데이터의 크기에 맞게 조정합니다.

 

무엇보다 배열을 활용함에 있어서 중요한 것은, 배열의 길이를 알아내는 건데요.

자바에서는 ".length" 라는 것을 통해 배열의 길이를 반환해서 알아낼 수 있지만,

C에서는 sizeof 연산자를 써서 배열을 길이를 알아내야 합니다.

 

더 알아보기 전에 sizeof 연산자를 잠시 살펴보면,

sizeeof 연산자는 피연산자의 크기를 반환하는 연산자로 다음과 같이 데이터의 크기를 알아 낼 수 있습니다.

 

 그렇다면, sizeof 연산자를 활용해 배열의 길이를 알아내는 방법을 알아봅시다.

선언된 배열의 크기는 선언되는 타입과 배열의 길이에 의해 정의되는데요.

 

 

배열의 크기 = 배열의 타입의 크기 x 배열의 길이

 

이것을 다시 우리가 알기 원하는 배열의 길이를 구하기 위해서는 "배열의 타입의 크기"를 좌변으로 넘겨서

 

 배열의 크기 / 배열의 타입의 크기 = 배열의 길이

 

이렇게 배열의 길이를 나타낼 수 있겠군요. 그렇다면 sizeof 연산자는 피연산자 -즉 괄호안에 명시된 데이터-의 크기를 알아낼 수 있다고 했으니, 다음과 같이 배열의 길이를 구할 수 있겠습니다.

 

배열의 길이= sizeof(배열) / sizeof(배열의 타입)

 

 

다음과 같이 활용이 가능합니다.

 

[결과화면]


이상 배열이었습니다.