비주얼스튜디오, C언어 배열을 써보자.
- 프로그래밍&4차산업
- 2020. 3. 22.
여러분들은 현재 3월달 C언어 기초를 배우고 있을껍니다. 변수에 숫자를 저장하여, 하나씩 출력 말이지요.
배열을 쓰면 간단해집니다. 만약내가 10개의 숫자를 저장 후 출력해야한다고 생각해봅시다.
그러면 지금 단계에서 여러분은 변수 10개를 만들어 숫자들을 저장할 것입니다.
그치만 배열을쓰면 한줄로 끝낼 수 있습니다.
바로 코드로 넘어가볼까요?
#include
int main(void) {
int i=1;
int j=2;
int k=3;
int array_1[3] = { 1,2,3 };
printf("변수로 출력하면?\n");
printf("%d %d %d\n", i, j, k);
printf("배열로 출력하면?\n");
for (i = 0; i < 3; i++) {
printf("%d ", array_1[i]);
}
printf("\n");
return 0;
}
처음 i, j, k에 각각 1,2,3을 저장합니다.
int array_1[3]은
정수형인 배열을 만들껀데
배열이름은 array_1입니다.
대 괄호안에 숫자는 내가 넣을 숫자의 개수입니다.
int array_1[3] = { 1,2,3 };
즉 3개의 정수를 넣는 배열을 만들껀데, 1,2,3 숫자를 넣겠다 이말입니다.
만약 배열에 5개의 숫자를 넣는다면
배열을 int array_1[5]로 선언해준 후 중괄호안에 숫자 5개를 넣어야겠죠?
첫번째 프린트문은 여러분들도 아실껍니다.
%d는 부호있는 10진수를 출력하는데, i, j, k에 저장된 변수를 출력하겠다는 이야기입니다.
두번째 배열문은 출력이 조금 독특합니다.
배열을 출력하려면 포문을 알아야합니다.
포문을 모르고도 할 수 있습니다. 그치만 포문도 알려드릴게요.
포문은 특정 동작을 반복할때 쓰는 이야기입니다.
i=0 i<3 i++
i는 0부터 시작하는데
3까지 다.
i++는 1개씩 증가시키겠다라는 명령어입니다.
자 그럼 봅시다.
for (i = 0; i < 3; i++) {
printf("%d ", array_1[i]);
}
일단 i=1부터 시작한다하면
i는 1인 상태이고
printf("%d ", array_1[0]);
을 출력한다면 array_1[0] 를 출력 해보면
1이 나옵니다.
여기서 질문이 나올꺼에요. 선생님 저는 배열의 첫번째 숫자를 출력하려하는데 왜 0부터 시작인건가요? 1부터 시작해야하는거 아닌가요?
여기서 다시 되돌아가봅시다.
int array_1[3] = { 1,2,3 };
3개의 숫자를 넣는 배열이고
1은 첫번째
2는 두번째
3은 세번째에 있는 숫자입니다.
그치만 이 숫자들을 출력할땐 자동으로 +1이 된다고 생각하세요.
그렇기때문에
array_1[0]은 1이고
array_1[1]은 2이고
array_1[2]는 3입니다.
자 그럼 아까 i=0일때
for (i = 0; i < 3; i++) {
printf("%d ", array_1[i]);
}
이 포문이 한바퀴 돌변 i++을 시켜준다했습니다.
그렇다면 이제 i는 1이됩니다.
for (i = 0; i < 3; i++) {
printf("%d ", array_1[1]);
}
을 하면 두번째 숫자인 2가 출력이 됩니다.
그리고 포문이 한바퀴 더돌아서 ++가 되면
i=2가 됩니다.
for (i = 0; i < 3; i++) {
printf("%d ", array_1[2]);
}
이땐 세번째 숫자인 3이 출력이 됩니다.
그리고 i<3까지라고 선언해줬습니다.
i가 2에서 3이 넘어가는 순간에 for문은 끝이나는겁니다.
결과를 보시면
자 만약에 우리가 쓰는 숫자가 3개가아니라
10개라면?
단순한 printf 문으로 출력하면
변수10개를 직접 선언해서 숫자를 넣어줘야하지만,
배열을 쓴다면 한번에 넣을 수 있다는 장점이 있습니다.
이로써 배열을쓰는이유는
코드를 간결하게 할 수 있어 사용 할 수 있습니다.
추후에 포인터를 배우게되면 배열에 대한 필요성을 더욱더 느끼게 될 껍니다.
이제 변수를 조금더 키워볼까요?
#include
int main(void) {
int i=315;
int j=21;
int k=32;
int n=12;
int m=84;
printf("변수로 출력하면?\n");
printf("%d %d %d\n", i, j, k, n, m);
return 0;
}
#include
int main(void) {
int array_1[5] = { 32,123,412,125,328 };
printf("배열로 출력하면?\n");
for (int i = 0; i < 5; i++) {
printf("%d ", array_1[i]);
}
printf("\n");
return 0;
}
자 엄청 간결해지죠?
만약 변수가 점점 더늘어난다면 배열이 더 이득일 것입니다.
여기서 또 질문이 생기겠네요.
선생님 아까 for문안에 i앞에 int가 없었는데
왜 추가하셨나요?
한번 int를 지우고 코드를 실행해보겠어요?
작동이 안될껍니다.
포문안에 i에 대한 형식을 지정해줘야합니다.
소수점으로 증가할 수 있기때문에
i는 정수다 라는 약속을 하기위해 써준겁니다.
공부해보고 모르는 질문은 댓글로 받겠습니다.
구독 부탁드려요!
'프로그래밍&4차산업' 카테고리의 다른 글
자바스크립트(Javascript)란 (0) | 2020.04.23 |
---|---|
c언어 프로그래밍 비트연산자에 대하여 알아보자.(2진법, 8진법, 16진법, 10진법) (0) | 2020.03.31 |
visual studio scanf 오류 (비주얼스튜디오 2019) (0) | 2020.02.23 |
비주얼스튜디오, 비쥬얼스튜디오, visual studio 줄번호추가하기(2019버전 (0) | 2020.02.23 |
비쥬얼스튜디오, 비주얼스튜디오, Visual Studio 2019 설치하기 (2020년 전자, 전기, 컴퓨터공학 필독) 및 Hello world 출력하기(셋팅) (0) | 2020.02.23 |