배열(array)
변수들의 집합이며 여러 값을 한 변수의 첫 번째 주소(0번째)를 사용해
메모리에 기억시켜 사용합니다.
배열은 복잡 다양한 정보의 양을 다뤄야 하는 면에서 좋은 기능을 보여줍니다.
C언어 - 배열이란?
#include <stdio.h>
int main()
{
int a, b, c, d, e;
printf("다섯개의 정수를 입력하시오 >> ");
scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);
printf("%d\n%d\n%d\n%d\n%d\n", a, b, c, d, e);
return 0;
}
>>> 다섯개의 정수를 입력하시오 >> 1 2 3 4 5
1
2
3
4
5
만약 다섯개의 int형 값을 받아야 한다고 가정했을 때
하나의 int형 값마다 변수를 하나씩 선언해 개별적으로 값을 받는 과정은
지나치게 비효율적입니다.
위 코드에서 배열은 5개의 값을 한 번에 저장합니다.
또한 배열을 다시 불러낼 때는 배열의 첫 번째 주소(0번째) 값이 호출됩니다.
C언어 - 배열 기초적인 사용법
#include <stdio.h>
int main()
{
int num[5];
for(int i=0; i<5; i++)
{
printf("정수를 입력하시오 >> ");
scanf("%d", &num[i]);
}
for(int j=0; j<5; j++)
{
printf("정수의 값 출력 >> %d\n", num[j]);
}
return 0;
}
>>>
정수를 입력하시오 >> 1
정수를 입력하시오 >> 2
정수를 입력하시오 >> 3
정수를 입력하시오 >> 4
정수를 입력하시오 >> 5
정수의 값 출력 >> 1
정수의 값 출력 >> 2
정수의 값 출력 >> 3
정수의 값 출력 >> 4
정수의 값 출력 >> 5
위 코드에서 선언된 int num [5]; 는
int형 배열이며
[5]는 배열의 사이즈(크기) 즉 5의 크기를 가진 배열이라는 뜻입니다.
정수형 배열 num은 5개의 변수만큼의 크기를 가집니다.
int 형 변수 하나가 C언어에서는 4 bytes의 크기를 가지니
num [5]은 20 bytes의 크기를 가집니다.
C언어 - 배열의 초기화와 문자 배열
#include <stdio.h>
int main()
{
int num[]={1,2,3,4,5};
char str[20];
for(int i=0; i<5; i++)
{
printf("%d\n", num[i]);
}
scanf("%s", str);
printf("문자열 출력 : %s", str);
return 0;
}
>>>
1
2
3
4
5
hello
문자열 출력 : hello
배열에 미리 크기(size)를 지정해준 뒤 값을 받을 수도 있지만
별도로 값을 지정하지 않은 상태에서 배열에 값을 초기화해 줄 수도 있습니다.
위 코드에서 num 배열은 5개의 변수를 받았지만
따로 크기가 지정되어 있지 않습니다.
char str [20]; 문자형 배열 str은 20의 크기를 지정받았고
scanf() 입력 함수를 통해 값을 입력받아 hello라는 문자열을 출력했습니다.
C언어 - 배열 사이즈를 알려주는 sizeof 함수
#include <stdio.h>
int main()
{
char str[]="hello world";
int size=0;
size=sizeof(str)/sizeof(str[0]);
printf("문자열 str의 개수는 %d개입니다.", size);
return 0;
}
>>> 문자열 str의 개수는 12개입니다.
sizeof() 함수는 크기를 () 내의 변수의 크기를 반환합니다.
위 size라는 변수에서는 str이라는 문자형 배열의 크기를 측정 해서
str에 몇 개의 문자가 들어있는지 출력했습니다.
C언어 - 배열 예제 1 // 입력한 단어의 길이 출력하기 + strlen()
#include <stdio.h>
#include <string.h>
int main()
{
char str[50];
printf("문자열을 입력하시오 >> ");
scanf("%s", str);
printf("입력하신 단어는 %s이고 단어의 길이는 %d\n", str,strlen(str));
return 0;
}
>>>
문자열을 입력하시오 >> hello
입력하신 단어는 hello이고 단어의 길이는 5
strlen() 함수는 문자열의 길이을 측정해 반환합니다.
str배열은 50의 크기가 선언되어있지만
scanf()를 통해 실제 입력받은 값은 hello=5 이므로
strlen()은 5를 반환합니다.
strlen()함수는 string.h 헤더에 포함되어있기에
사용을 위해서는 string.h를 선언해주어야 합니다.
string.h -> 문자열 헤더
다른글
'개발&코딩 > C' 카테고리의 다른 글
C언어 배열과 포인터 심화내용 알아보기 (0) | 2020.09.10 |
---|---|
[C] 포인터와 메모리 기초 &,* (0) | 2020.09.10 |
[C] 함수의 구조와 예제 모음 (0) | 2020.09.09 |
C언어 반복문 예제와 기초 알아보기 - for,while,dowhile (0) | 2020.09.09 |
C언어 조건제어문 if문/else문 과 switch/case문 예제와 기초 (0) | 2020.09.09 |
댓글