{
// bool이 31개 있는 배열
bool attendanceBook[31];
// bool, bool, bool ... bool (*31)
attendanceBook[0]; // 배열의 맨 앞 값 (0)
attendanceBook[30]; // 배열의 맨 뒤 값 (SIZE - 1)
attendanceBook[-1]; // 정의 되지 않은 행동, 음수 (컴파일 됨)
attendanceBook[31]; // 정의 되지 않은 행동, 사이즈 초과 (컴파일 됨)
}
attendanceBook
배열을 bool
타입의 31개 원소로 선언합니다.attendanceBook[0]
은 배열의 첫 번째 요소를 참조합니다.attendanceBook[30]
은 배열의 마지막 요소를 참조합니다.attendanceBook[-1]
과 attendanceBook[31]
은 유효하지 않은 인덱스 접근으로, 정의되지 않은 동작을 일으킵니다. 컴파일은 되지만 런타임 오류가 발생할 수 있습니다.{
int arraySize;
cin >> arraySize;
// 변수로 배열 사이즈를 지정할 수 없다
// bool attedanceBook[arraySize];
}
arraySize
를 입력받습니다.{
// 상수를 이용한 배열 사이즈
const int arraySize = 31;
bool attendanceBook[arraySize];
// 상수는 바꿀 수 없다.
//arraySize = 1;
}
const int arraySize
를 31로 초기화합니다.attendanceBook
배열을 arraySize
크기로 선언합니다.const
로 선언된 상수는 변경할 수 없습니다.{
// 매크로를 이용한 배열 사이즈
#define ARRAY_SIZE 31
bool attendanceBook[ARRAY_SIZE];
}
ARRAY_SIZE
를 31로 정의합니다.attendanceBook
배열을 ARRAY_SIZE
크기로 선언합니다.{
int nums[3];
cout << nums[0] << endl; // 초기화가 안 돼서 쓰레기 값이 나온다.
}
nums
배열을 3개의 int
원소로 선언합니다.nums[0]
의 값은 쓰레기 값입니다.{
// 배열의 값 설정
int nums[3];
nums[0] = 10;
nums[1] = 10;
nums[2] = 10;
}
nums
배열을 3개의 int
원소로 선언합니다.{
// 초기화 리스트
int nums[3] = { 1, 2, 3 };
}
nums
배열을 3개의 int
원소로 선언하고 초기화 리스트를 사용하여 값을 설정합니다.{
int nums[3] = { 1 }; // 1 이후로는 0으로 채워진다.
}
nums
배열을 3개의 int
원소로 선언하고 첫 번째 요소만 1로 초기화합니다.{
int nums[]{ 1, 2 }; // 사이즈 명시 하지 않으면 초기화 시 넣어준 원소의 개수 배열
// 배열 자체의 사이즈
cout << sizeof(nums) << endl;
// 배열 원소의 개수
cout << sizeof(nums) / sizeof(int) << endl;
}
nums
배열을 초기화 리스트로 선언하고 크기를 자동으로 결정합니다.sizeof(nums)
를 사용하여 배열의 전체 크기를 바이트 단위로 출력합니다.sizeof(nums) / sizeof(int)
를 사용하여 배열의 원소 개수를 계산합니다.{
// 배열 순회
int nums[]{ 1, 2, 3, 4 };
int size = sizeof(nums) / sizeof(int);
for (int i = 0; i < size; ++i)
{
cout << nums[i] << endl;
}
int i = 0;
while (i < size)
{
cout << nums[i] << endl;
i++;
}
}
nums
배열을 초기화 리스트로 선언합니다.sizeof(nums) / sizeof(int)
를 사용하여 배열의 크기를 계산합니다.for
문을 사용하여 배열을 순회하면서 각 요소를 출력합니다.while
문을 사용하여 배열을 순회하면서 각 요소를 출력합니다.{
// 배열 개 수 구하기
int nums[3];
int nSize = size(nums);
cout << nSize << endl;
}
nums
배열을 선언합니다.size(nums)
함수를 사용하여 배열의 크기를 구합니다.{
// 배열 복사
int nums0[3] = { 0, 1, 2 };
int nums1[3];
// 대입 안 됨
// nums1 = nums0;
// 순회를 이용한 복사
for (int i = 0; i < 3; ++i)
{
nums1[i] = nums0[i];
}
// 함수를 이용한 복사
memcpy(nums1, nums0, sizeof(nums0));
memcpy(&nums1, &nums0, sizeof(nums0));
copy(nums0, nums0 + 3, nums1);
}
nums0
배열을 초기화 리스트로 선언하고 값을 설정합니다.nums1
배열을 선언합니다.for
문을 사용하여 배열의 각 요소를 복사합니다.memcpy
함수를 사용하여 배열을 복사합니다.copy
함수를 사용하여 배열을 복사합니다.{
// 홀수번 반복 되어 있는 한 개의 수 구하기
int nums[] = { 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 1, 2, 3 };
int result = 0;
for (int i = 0; i < size(nums); ++i)
{
result ^= nums[i];
}
cout << result << endl; // 4
}
nums
배열을 선언하고 초기화 리스트로 값을 설정합니다.result
변수를 0으로 초기화합니다.for
문을 사용하여 배열의 각 요소를 순회하면서 XOR 연산을 통해 홀수번 반복된 값을 찾습니다.{
int nums[]{ 5, 4, 3, 1, 7, 4, 3, 5, 6, 1, 2 };
for (int i = 0; i < size(nums); ++i)
{
for (int j = 0; j < size(nums) - i - 1; ++j)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
for (int i = 0; i < size(nums); ++i)
{
cout << nums[i] << endl;
}
}
` 배열을 초기화 리스트로 선언합니다.
2. 버블 정렬 알고리즘을 사용하여 배열을 정렬합니다.
for
문은 배열의 각 요소를 순회합니다.for
문은 인접한 두 요소를 비교하고, 큰 값을 뒤로 이동시킵니다.temp
변수를 사용하여 값을 교환합니다.