C언어 - 2차원 배열과 메모리
2020. 11. 11. 23:03ㆍ개인공부/C언어
3개짜리가 원소가 2개 있다.
int arr[2][3] = { {1,2,3,}, {4,5,6} }; // 초기화 방법 1.
int arr[2][3] = { 1,2,3,4,5,6 }; // 초기화 방법2.
// 배열 출력하는 for문
for (int j = 0; j<2; ++j)
{
for( int i = 0; i < 3; ++i)
printf("%d ", arr[j][i]);
}
index 오른쪽에 붙은 걸 for문 안쪽에 넣는다.
배열이 내부적으로는 1차원인데.
for문 순서가 arr[][] 배열이 메모리에 저장된 순서가 같으면 계산이 더 빨라진다.
int *ptr = &arr[0][0];
for (int k = 0; k < 6; ++k)
printf("%d ", ptr[k]); // 결과값 : 1 2 3 4 5 6
printf("%zd %zd\n", sizeof(arr), sizeof(arr[0])); // 결과값: 24 12
arr[0]의 값은 왜 12일까? arr[0]은 3개 짜리이기 때문이다. // arr[2][3]은 3개짜리 2개
출처 : 홍정모의 따라배우는 C언어
'개인공부 > C언어' 카테고리의 다른 글
C언어 - 포인터 연산 총정리 (0) | 2020.11.12 |
---|---|
C언어 - 배열을 함수에게 전달해주는 방법 (0) | 2020.11.12 |
C언어 - 포인터와 배열 (0) | 2020.11.11 |
C언어 - 포인터의 산술 연산 (0) | 2020.11.11 |
C언어 - 배열의 기본적인 사용방법 (0) | 2020.11.11 |