본문 바로가기

IT/C언어

[C언어] 배열 선언 시 주의할 점

[C언어] 배열 선언 시 주의할 점




안녕하세요 . 지토우에요.

주말에는 포스팅하기가 어려워서 자꾸 1일 1 포스팅의 약속을 지키지 못하게 되네요...

예약을 걸어서라도 약속을 지키도록 하겠습니다 ㅠ ㅠ


어쨌든, 오늘은 배열 선언 시에 주의할 점에 대해서 알려드릴게요.







1. 배열 요소는 0부터 시작



 다음 코드에서 int array[2]는 배열 요소를 총 2개 선언하고 있습니다.

그런데 array[2]=3은 배열의 세 번째 요소에서 데이터 3을 저장하라는 의미로 에러가 발생합니다.

왜냐하면, 배열의 요소는 0부터 시작하기 때문이죠!

array[0], array[1]은 존재하지만 array[2]는 존재하지 않습니다.





2. 배열 초기화를 중괄호로 할 때 배열의 선언과 초기화가 개별적으로 이뤄어지면 안됨



 다음 코드에서 배열 array2는 배열을 선언한 후에 중괄호를 이용해 초기화를 개별적으로 했기에 에러가 일어났습니다.

중괄호를 이용할 때는 배열 array1처럼 한 줄에서 선언과 초기화를 함께 해야 에러가 나지 않아요.






3. 배열 길이를 변수로 설정하면 안됨


 다음 코드에서 배열 array1과 array2는 심볼릭 상수 MAX와 SIZE로 배열 길이를 설정하고 있습니다.

그러나 배열 array3은 변수 a로 배열 길이를 설정하고 있어서 에러가 발생합니다.

배열 길이는 반드시 상수로 설정해야 합니다.




2, 6행에서는 심볼릭 상수를 선언했습니다.

7행과 8행은 배열 길이를 심볼릭 상수로 설정했고요.

9행은 배열 길이를 변수로 설정했고, 에러가 났습니다.