[C언어] 배열(Array) 선언, 인덱스, 주소C2021. 12. 9. 06:09
Table of Contents
1. 배열(Array)이란?
- 일종의 집합. 하나의 변수에 여러 개의 값을 넣을 수 있다.
1) 배열 선언
자료형 배열이름[크기 n ( = 요소의 개수)] = {값1, 값2, 값3, ...값n}
- 자료형 배열 이름[대괄호 안에 크기] = {중괄호 안에 값들}
2) 인덱스(index)
- 인덱스는 0부터 시작(배열의 첫 번째 값의 인덱스는 0)
- 인덱스를 통해 배열 안의 요소에 접근 가능
* 배열이름[인덱스값] : ex) 배열 이름[0]
#include <stdio.h>
int main()
{
int arr[5] = {1, 2 , 4, 8, 16};
printf("arr 배열의 첫 번째(=인덱스가 0) 값 : %d\n", arr[0]); //1
printf("arr 배열의 두 번째(=인덱스가 1) 값 : %d\n", arr[1]); //2
printf("arr 배열의 세 번째(=인덱스가 2) 값 : %d\n", arr[2]); //4
printf("arr 배열의 네 번째(=인덱스가 3) 값 : %d\n", arr[3]); //8
printf("arr 배열의 다섯 번째(=인덱스가 4) 값 : %d\n", arr[4]);//16
return 0;
}
- 선언과 동시에 초기화, 특정 자릿수까지만 초기화, 모든 값을 0으로 초기화, 초기화 값들의 개수에 맞춰 자동으로 배열 크기 설정, 초기화하지 않음 등 다양한 경우의 수가 가능하다.
- 하지만, 배열의 값을 초기화 하지 않으면 랜덤 값(쓰레기 값)이 나온다.
int main()
{
int arr1[5] = {1, 33 , 47, 102, 155}; // 선언과 동시에 초기화
int arr2[5] = {5}; // 0 번째 값을 5 로 초기화하고 나머지는 모두 0 으로 초기화
int arr3[5] = {5, 10}; // 0 번째 값을 5, 1 번째 값을 10으로 초기화하고 나머지는 모두 0 으로 초기화
int arr4[5] = {}; // 모두 0 으로 초기화
int arr5[5]; // 초기화 하지 않음
int arr6[] = {11, 22 , 33, 44}; // 배열의 크기가 4로 정해지면서 자동으로 초기화
return 0;
}
3-1) 배열과 반복문 -1 : 배열 값 출력
//for반복문을 통해 배열 내의 값을 하나씩 출력
#include <stdio.h>
int main()
{
int arr[5] = {1, 2 , 4, 8, 16}; // 선언과 동시에 초기화
for(int i=0; i<5; i++)
{
printf("arr 배열의 인덱스 %d 의 값 : %d\n", i, arr[i]);
}
return 0;
}
/* 출력값
arr 배열의 인덱스 0의 값 : 1
arr 배열의 인덱스 1의 값 : 2
arr 배열의 인덱스 2의 값 : 4
arr 배열의 인덱스 3의 값 : 8
arr 배열의 인덱스 4의 값 : 16*/
3-2) 배열과 반복문 -2 : 배열 값 입력
//반복문 활용 배열값 입력
#include <stdio.h>
int main()
{
int arr[5];
for(int i = 0; i < 5; i++);
{
printf("인덱스 %d에 들어갈 값을 입력하세요. : \n", i);
scanf("%d",&arr[i]);
}
printf("------결과------\n");
for(int i = 0; i < 5; i++);
{
printf("인덱스 %d의 값 : %d\n", i, arr[i]);
}
printf("------종료----\n");
return 0;
}
4) 배열의 주소
- 배열 내 모든 값의 주소는 연속적으로 연결되어있음.
- 배열의 자료형의 크기 * 배열 값(자료형의 크기)의 크기만큼 이어져 있음. => 포인터 개념과 활용 예정
cf) int형 배열 arr : int형 원소 1개당 4byte.
int형 배열의 0번째 원소부터 배열의 끝 n번째 원소까지 주소 길이는 (n*4)byte
'C' 카테고리의 다른 글
[C언어] 문자열 출력과 입력 (0) | 2021.12.09 |
---|---|
[C언어_활용] 배열 크기 구하기(sizeof) (0) | 2021.12.09 |
[C언어_활용] 누적 계산기(for, while문 활용) (0) | 2021.12.09 |
[C언어] 반복문(for, while, do while) (0) | 2021.12.09 |
[C언어] 비트 연산자, 비트 이동 연산자( &, |, ^, ~, <<, >> ) (0) | 2021.12.09 |
@Yanako :: Yana's coding story였는데요, 우당탕탕 개발일지가 맞는것같
야나의 코딩 일기장 :) #코딩블로그 #기술블로그 #코딩 #조금씩,꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!