배열
std::string friends[2]; //선언만 할 경우 초기화 값을 써야한다.
friends[0] = "홍길동"; //초기화
friends[1] = "성춘향"; //초기화
friends[1] = "코딩온"; // 변경 가능
std::string friends[] = { "홍길동", "성춘향", "코딩온" };
// 선언과 초기화가 함께 될 땐 몇개의 원소(인덱스)를 쓸 지 적지 않아도 된다.
int nums[] = { 1, 2, 3 };
std::cout << nums[2] << "\n"; // 3출력
double dnums[] = { 1.5, 2.5, 3.5 };
std::cout << dnums[2] << "\n"; //3.5 출력
float fnums[] = { 9, 3.14, 4 };
std::cout << fnums[1] << "\n"; // 3.14 출력
// --------------2차원 배열 ----------------
std::string fruit[2][3] = {
{"apple","grape","strawberry"},
{"orange","banana","melon"}
};
// ----------------3차원 배열------------------
std::string fruits[2][3][2] = {
{{ "1" , "2" } , { "주인공" , "www" } , { "3" , "4" }},
{{ "0" , "9" } , { "8" , "7" } , { "6" , "5" }}
};
std::string friends[] = { "홍길동", "성춘향", "코딩온" };
for (int i = 0; i < 3; i++) {
std::cout << friends[i] << std::endl;
}
// sizeof(); : sizeof안에 변수 or 타입을 인자로 넘겨줌.
// 크기를 byte단위로 구해줌
for (int i = 0; i < sizeof(friends)/sizeof(std::string); i++) { //sizeof[0]으로 나눠도 된다.
std::cout << friends[i] << std::endl;
}
// ----------2차원 배열과 for문------------
std::string fruit[2][3] = {
{"apple","grape","strawberry"},
{"orange","banana","melon"}
};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
std::cout << fruit[i][j] << " ";
}
std::cout << std::endl;
}
std::string friends[] = { "홍길동", "성춘향", "코딩온" };
for (auto f : friends) { //for-each문은 배열을 안쓰고 각각의 값에 갈 수 있음, 배열의 크기 만큼 돔
//f = "홍길동"
//f = "성춘향" 로 바뀜
//f = "코딩온" 로 바뀜
std::cout << f << std::endl;
}
std::string fruit[2][3] = {
{"apple","grape","strawberry"},
{"orange","banana","melon"}
};
for (auto &f : fruit) {
for (std::string f2 : f) {
std::cout << f2 << "2 ";
}
std::cout << std::endl;
}
실습
(1) city라는 배열 변수를 만들고, 5개의 나라 이름을 값으로 지정
(2) for문 혹은 for-each문을 활용하여 city안의 모든 원소를 출력
std::string city[] = { "한국", "미국", "일본", "중국", "북한" };
for (auto c : city) {
std::cout << c << std::endl;
}
(1) grade라는 배열 변수를 선언하고, 학생 5인의 성적 입력받기
(2) for문 혹은 for-each문을 활용하여 학생 5인의 성적 평균 산출
std::string students[] = { "짱구", "맹구", "철수", "훈이", "유리" };
double grade[5];
double sum = 0;
for (int i = 0; i < 5; i++) {
std::cout << students[i] << "의 성적: ";
std::cin >> grade[i];
sum = sum + grade[i];
}
std::cout << "떡잎유치원 평균 성적: " << sum / 5;
마무릐!
배열에 대해 알아보았다.
배열은 C++을 배우는 이유 중 하나라고 생각한다!
깊게 들어가진 않았기에 이해가 되지 않는 부분은 없었다
포인터를 배우고 나서 배열을 쓰기 시작하면 어렵겠다는 생각이 본능적으로 들었다
그게 아니더라도 포인터는 무서운 녀석이니까.. 당연한건가
포인터에 대해 미리 예습을 좀 해둬야겠다고 생각이 들었다!
이상!