회원 로그인
|
배열
C++ 배열
- 동일한 타입의 데이타를 저장할 수 있는 변수로 저장된 데이타는 인덱스로 접근하게 됨
[1차원 배열 문법]
1. 생성
자료형 배열명[데이타갯수];
[1차원 배열의 초기화]
1. 생성과 함께 초기화
자료형 배열명[4] = {데이타1, 데이타2, 데이타3, 데이타4};
자료형 배열명[] = {데이타1, 데이타2, 데이타3, 데이타4};
2. 생성 후 초기화
자료형 배열명[4];
배열명[0] = 데이타1; 배열명[1] = 데이타2; 배열명[3] = 데이타3;
[특이 사항]
1. 배열의 이름은 배열의 첫번째 요소의 주소 상수임
배열명 == &배열명[0] == 배열명 + 0 == &배열명[0] + 1
배열명[0] == *(배열명 + 0) == *(&배열명[0])
2. 포인터 변수에 더하기 연산을 수행할 경우 포인터 변수에 저장된 주소에 저장된 데이타 자료형 만큼 뒤의 주소를 반환함
[주의 사항]
1. 배열 갯수를 정한 상태에서 초기화 데이타 갯수가 많거나 적으면 오류가 발생함
예) int array[5] = {1, 2, 3} <- 데이타 갯수가 부족함
예) int array[3] = {1, 2, 3, 4, 5} <- 데이타 갯수가 넘쳐남
2. 배열의 갯수를 정하지 않은 상태에서 초기화 데이타가 없으면 오류가 발생함
예) int array[] = {} <- 갯수를 파악할 수 없음
#include <iostream> #include <stdlib.h> /* srand, rand */ #include <time.h> /* time */ #include <string> using namespace std; void main(){ /* // 변수 선언 int val1; int val2; int val3; int val4; int val5; // 입력 cout << "val1 : "; cin >> val1; cout << "val2 : "; cin >> val2; cout << "val3 : "; cin >> val3; cout << "val4 : "; cin >> val4; cout << "val5 : "; cin >> val5; // 출력 cout << "val1 : " << val1 << endl; cout << "val2 : " << val2 << endl; cout << "val3 : " << val3 << endl; cout << "val4 : " << val4 << endl; cout << "val5 : " << val5 << endl; */ // 배열 선언 int vals[5]; // 입력 for (int i = 0; i < 5; i++){ cout << "val[" << i << "] : "; cin >> vals[i]; } // 출력 for (int i = 0; i < 5; i++){ cout << "val[" << i << "] : " << vals[i] << endl; } }
// 배열 예제 #include <iostream> #include <stdlib.h> /* srand, rand */ #include <time.h> /* time */ #include <string> #include <array> using namespace std; void main(){ // 배열 생성 // 자료형 배열명[갯수]; int arr[5]; int index = 0; // 배열의 값 변환 arr[index] = 5; arr[1] = 10; arr[2] = 15; arr[index + 3] = 20; arr[4] = 30; // 출력 cout << "arr[index] : " << arr[index] << endl; cout << "arr[1] : " << arr[1] << endl; }
객체별(class의 반복)
객체를 가진 몬스터가 많을 경우 배열 사용
3 몬스터의 이름, 속도, 체력, 공격력을 입력 받아 출력
#include <iostream> #include <stdlib.h> /* srand, rand */ #include <time.h> /* time */ #include <string> #include <array> // 배열 using namespace std; // 배열 예제 class Monster { public: string name; int speed; int hp; int damage; void printInfor(int index){ cout << "몬스터[" << index << "] 번째 이름 출력: " << name << endl; cout << "몬스터[" << index << "] 번째 속도 출력: " << speed << endl; cout << "몬스터[" << index << "] 번째 체력 출력: " << hp << endl; cout << "몬스터[" << index << "] 번째 공격력 출력: " << damage << endl; } }; // 상수 사용 #define arrayCount 5 void main(){ // 상수 값으로 배열 공간 확보 Monster monster[arrayCount]; int i = 0; // 입력 while (i < arrayCount) { cout << "몬스터[" << i << "] 번째 이름 입력 : "; cin >> monster[i].name; cout << "몬스터[" << i << "] 번째 속도 입력 : "; cin >> monster[i].speed; cout << "몬스터[" << i << "] 번째 체력 입력 : "; cin >> monster[i].hp; cout << "몬스터[" << i << "] 번째 공격력 입력 : "; cin >> monster[i].damage; i++; } cout << endl; // 출력 for (int i = 0; i < arrayCount; i++) { monster[i].printInfor(i); } }
댓글 0개
| 엮인글 0개
285개(8/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
>> | [C/C++] 배열 | 푸딩뱃살 | 2003 | 2015.11.03 09:58 |
144 | [C/C++] 클래스 | 푸딩뱃살 | 2375 | 2015.11.03 09:58 |
143 | [C/C++] 함수 사용 팁 | 푸딩뱃살 | 1956 | 2015.11.03 09:54 |
142 | [C/C++] 가위바위보 게임 3 (함수 사용) | 푸딩뱃살 | 3166 | 2015.11.02 13:45 |
141 | [C/C++] 함수 | 푸딩뱃살 | 1801 | 2015.11.02 13:44 |
140 | [C/C++] 2차원(2중) for문 | 푸딩뱃살 | 1956 | 2015.10.30 17:59 |
139 | [C/C++] 상수 | 푸딩뱃살 | 1401 | 2015.10.30 17:58 |
138 | [C/C++] 가위바위보 게임 2 | 푸딩뱃살 | 1642 | 2015.10.30 17:32 |
137 | [C/C++] continue문 | 푸딩뱃살 | 1531 | 2015.10.30 16:01 |
136 | [C/C++] break문 | 푸딩뱃살 | 1665 | 2015.10.30 15:43 |
135 | [C/C++] 반복문 while와 for 비교 | 푸딩뱃살 | 2486 | 2015.10.30 15:42 |
134 | [C/C++] 반복문 for | 푸딩뱃살 | 1820 | 2015.10.30 14:16 |
133 | [C/C++] 반복문 while | 푸딩뱃살 | 2253 | 2015.10.30 14:13 |
132 | [C/C++] 반복문 하기 전 스크립트 | 푸딩뱃살 | 1970 | 2015.10.30 14:10 |
131 | [C/C++] 조건문 switch | 푸딩뱃살 | 2069 | 2015.10.30 10:56 |
130 | [C/C++] 가위바위보 게임 | 푸딩뱃살 | 1742 | 2015.10.29 17:30 |
129 | [C/C++] 조건문 if ~ else | 푸딩뱃살 | 1966 | 2015.10.29 15:08 |
128 | [C/C++] 형 변환 | 푸딩뱃살 | 1648 | 2015.10.29 12:02 |
127 | [C/C++] 대입 연산자 | 푸딩뱃살 | 1561 | 2015.10.29 12:00 |
126 | [C/C++] 증가감 연산자 | 푸딩뱃살 | 1572 | 2015.10.29 11:57 |