배열
■ 배열 선언
1. 배열 - 동일한 타입의 여러 값을 한꺼번에 담을 수 있는 자료 구조.
2. 선언과 동시에 초기화 / 선언 후 추후 초기화 가능. (변수와 동일)
// 배열 선언과 동시에 초기화
int arr1[3] = {1, 2, 3};
// 선언 후 개별 원소 초기화
int arr2[3];
arr2[0] = 10;
arr2[1] = 20;
arr2[2] = 30;
■ 배열 임의 접근
[ ] (배열 첨자 연산자) 를 통해서 각 원소에 임의 접근 가능.
int arr[4] = {10, 20, 30, 40};
// 배열 원소에 임의 접근하여 출력
cout << "첫 번째 원소: " << arr[0] << endl;
cout << "두 번째 원소: " << arr[1] << endl;
cout << "세 번째 원소: " << arr[2] << endl;
cout << "네 번째 원소: " << arr[3] << endl;
// 범위를 벗어난 접근 (에러 발생 가능)
// cout << arr[4] << endl; // 정의되지 않은 동작 (UB, 오류 가능)
■ 배열 복사 및 대입
통째로 복사 및 대입 불가.
int arr1[3] = {1, 2, 3};
int arr2[3];
// 개별 원소를 복사하는 것은 가능
for (int i = 0; i < 3; i++) {
arr2[i] = arr1[i];
}
// 배열 통째로 대입 (불가능, 주석 처리)
// arr2 = arr1; // 컴파일 오류 발생
■ 배열 입출력
각 원소에 cin cout 입출력 가능
#include <iostream>
using namespace std;
// 배열 원소를 개별적으로 입력 및 출력하는 예제 (반복문 없이)
int main() {
int arr[2]; // 크기 2의 배열 선언
// 각 원소에 대해 개별적으로 입력 받기
cout << "첫 번째 정수를 입력하세요: ";
cin >> arr[0];
cout << "두 번째 정수를 입력하세요: ";
cin >> arr[1];
// 각 원소 개별 출력
cout << "입력한 값: " << arr[0] << ", " << arr[1] << endl;
return 0;
}
함수
■ 함수 정의와 호출
함수 - 반복적으로 사용되는 코드/논리적으로 묶이는 코드에 이름을 붙여 정의하는 문법. (가독성, 재사용성 향상)
인자, 동작, 반환, 이름으로 구성.
#include <iostream>
using namespace std;
// 두 정수를 더하는 함수
int add(int a, int b) {
return a + b; // 결과 반환
}
int main() {
int result = add(3, 7);
cout << "3 + 7 = " << result << endl; // 출력: 3 + 7 = 10
return 0;
}
// 인자 : int a, int b
// 동작 : a + b;
// 반환 : a + b의 결과값
// 이름 : add
■ 값 전달 방식
1. 값 전달 (일반 변수)
// 함수: 값 전달 (Call by Value)
void modifyValue(int x) {
x = 100; // 함수 내부에서 값 변경
}
int main() {
int num = 50;
modifyValue(num); // 값 전달 (복사됨)
cout << "값 전달 후 num: " << num << endl;
// 출력: 값 전달 후 num: 50
return 0;
}
2. 주소값 전달 (변수)
// 함수: 포인터를 사용한 값 변경
void modifyValue(int* ptr) {
*ptr = 100; // 포인터가 가리키는 변수의 값을 변경
}
int main() {
int num = 50;
modifyValue(&num); // num의 주소 전달
cout << "포인터 전달 후 num: " << num << endl;
// 출력: 포인터 전달 후 num: 100
return 0;
}
3. 주소값 전달 (배열)
// 함수: 포인터를 사용한 값 변경
void modeifyArr(char* ptr) {
ptr[0] = 'X'; // 포인터가 가리키는 변수의 값을 변경
}
int main() {
char str[4] = {'A', 'B', 'C', 'D'};
modeifyArr(str); // num의 주소 전달
cout << "포인터 전달 후 str[0] = " << str[0] << endl;
// 출력: 포인터 전달 후 str[0] = X
return 0;
}
4. 참조자 전달
// 함수: 참조를 사용한 값 변경
void modifyValueByReference(int& x) {
x = 200; // 참조를 사용하여 원본 값 변경
}
int main() {
int num = 50;
modifyValueByReference(num); // 참조 전달
cout << "참조 전달 후 num: " << num << endl;
// 출력: 참조 전달 후 num: 200
return 0;
}'Study > C++' 카테고리의 다른 글
| C++ 템플릿 (0) | 2025.12.17 |
|---|---|
| C++ 기초 (3) 조건문과 반복문 (0) | 2025.12.09 |
| C++ 기초 (1) 변수 (0) | 2025.12.05 |