반복문을 활용해보자.
#include <iostream>
using namespace std;
int main(){
char v1, v2, v3, v10
v1 = 'a';
v2 = 'a'; v3 = 'a'; v10 = 'a'
cout << v1 << endl;
cout << v2 << endl; cout << v3 << end; cout << v10 << endl;
return 0;
}
이렇게 일일히 타입을 지정하고, 값을 지정하면 상당히 불편하다.
그래서 우린 for 문을 사용할 수 있다 .
#include <iostream>
using namespace std;
int main(){
char arr[10]; // 배열로 선언 : 자료형 배열이름 [배열크기]
int i;
for (i=0; i<10; i++){ // 첫번째 조건부터 시작, 두번째 조건이 참일 경우 loop body 진행하고 세번째 조건문 실행, i++; 는 i += 1;과 같음
arr[i] = 'a'; // loop body
}
for (i=0; i<10; i++)
cout << arr[i] << endl; // state가 하나뿐이면, {}안에 안넣어도 됨!
return 0;
}
** 배열에는 항상 같은 타입을 넣어야 된다! **
배열의 인덱스 번호는 0부터 시작한다!
배열 원소의 접근
선언문에서 arr[n] 에서 n은 배열의 개수를 뜻함
실행문에서 arr[n] 에서 n은 인덱스를 뜻함!
선언문에서 int grade [10]; 했다면( size 가 10인 배열을 생성 0~9까지 인덱스가 있음)
실행문에서 int grade [10] = 99; 이렇게 인덱스를 10을 불러오면 오류가 일어남 적합한 범위가 아니니까.
gdb에서 arr
Q )
p arr[-1] 실행시
$1 = 85 'U' 라고 뜨는데 왜 그런걸까요?
p arr[10]
$2 = 0 '\000'
처럼 지정되지 않은 값은 0이 떠야하는 것 아닌가요?
A)
크게 프로젝트를 할 때 저렇게 로드하면 절대 안됨.
규칙을 어기면 지맘대로 나오는데, 이상한 결과값을 주는 오류가 발생할 수 있음
배열의 초기화
int grade[5] = {10, 20, 30, 40, 50};
int grade[5] = {10, 20, 30}; // size 는 5개로 말해놓고, 3개의 원소만 초기화했다면, 남은 2개는 0으로 초기화됨.
2차원 배열의 초기화
int s[3][5] = {
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
}; // s[3]의 뒤에 , 가 붙는데 왜 그런거지? 붙든 안붙든 상관없는건가?
실행 해보고 다음 시간에 질문 해보자.
실행결과 :
똑같은거같은데,, 메모리 저장공간도 똑같고, p arr해도
{{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5}}; 으로 출력함
'TIL > [C++ 프로그래밍} TIL' 카테고리의 다른 글
TIL (22.03.21) (0) | 2022.03.21 |
---|---|
TIL (22.03.20) (0) | 2022.03.21 |
TIL 3 (22.03.16) (0) | 2022.03.16 |
TIL 2 (22.03.14) (0) | 2022.03.14 |
TIL 1 (22.03.14) (0) | 2022.03.14 |