자료형 배열명[크기] = {내용}
ex) int numArr[10] = { 0, }
int main()
{
int numArr[10];
printf("%d", numArr[0]);
}
c언어에서 배열의 선언은 여러 종류가 있다.
초기화 없이 선언
int numArr[10];
정해진 크기만큼 초기화하여 선언(크기 설정 안해도 됨)
int numArr[] = {0,1,2,3,4,5,6,7,8,9}
초기화 한 만큼 배열의 크기가 만들어지므로 크기설정 불필요
크기 정하고 0으로 채워서 선언
int numArr[10] = {0, };
원하는 크기만큼 0으로 초기화하여 선언함.
배열명[인덱스]
numArr[0]
int main()
{
printf("%d", numArr[0]);
}
numArr[0]은 numArr배열의 0번째 인덱스 값을 반환하여 printf()문으로 표준출력 된다.
배열명[인덱스] = 값
numArr[4] = 10
배열은 첫번째 요소의 주솟값만 담고있다. 즉 주솟값이기 때문에 포인터에 넣을 수 있다.
int main()
{
int numArr[] = {0,1,2,3,4}
int *numPtr;
numPtr = numArr;
printf("%d", *numPtr);
}
>>> 0
int 포인터 numPtr을 선언하고 numArr 주솟값을 넣을때 numArr은 배열이기 때문에 &을 붙이지 않고 numPtr = numArr로 포인터에 할당한다.
int main()
{
int numArr[] = {0,1,2,3,4};
int *numPtr = numArr;
printf("%d\n", sizeof(numArr));
printf("%d\n", sizeof(numPtr));
}
>>> 5
>>> 4
sizeof()로 크기를 구할떄 배열을 넣으면 배열에 할당된 크기(5)만큼 반환하고
포인터를 넣으면 포인터속 메모리 할당크기가 아닌 포인터 자체의 크기를 반환하기 떄문에 pointer의 크기인 4가 반환한다. (64bit = 8byte)