배열(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 -> 문자열 헤더
다른글
1년간의 블로그 운영일지 - 2022, 수익, 조회수, 티스토리 블로그
20년도 7월부터 시작한 티스토리 블로그 운영이 어느덧 2년 반이 넘었습니다. 그리고 22년이 저물고 어느덧 23년도가 다가왔습니다. 제게는 살면서 가장 다사다난했던 22년도 한해였습니다. 그래
hobbylists.tistory.com
실내 크리스마스 트리 색감보정
사용된 색보정 도구 : Luminar4 루미나 4는 skylum에서 제작된 유료 색보정 툴입니다. 어도비 라이트룸과는 다르게 한번 구매 후 영구사용가능합니다. 또한 AI 기반의 강력한 자동화 보정 기능까지 제
hobbylists.tistory.com
오사카 도톤보리 여행기 4일차
8년 만에 다시 찾은 오사카 여행기 4일차 마지막 날 시작합니다. #쿠라스시도톤보리점 아침 일어나자마자 ...
blog.naver.com
'개발&코딩 > 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 |
댓글