int array[5] = {1,2,3,4,5};
배열의 요소 == 변수
#include<stdio.h>
int main(void) {
int total = 0;
int arr[5] = { 1,2,3,4,5 };
total = arr[0] + arr[1] + arr[2] + arr[3] + arr[4];
printf("배열의 총합은 %d입니다.\n", total);
return 0;
}
출력결과
배열의 총합은 15입니다.
int array[5] = { 1,2 };
#include<stdio.h>
int main(void) {
int total = 0;
int arr[5] = { 1,2 };
total = arr[0] + arr[1] + arr[2] + arr[3] + arr[4];
printf("배열의 총합은 %d입니다.\n", total);
return 0;
}
출력결과
배열의 총합은 3입니다.
array[3,4,5]는 각각 0으로 초기화 된다.
#include<stdio.h>
int main(void) {
int total = 0;
int arr[5] = { 1,2,3,4,5,6 };
total = arr[0] + arr[1] + arr[2] + arr[3] + arr[4];
printf("배열의 총합은 %d입니다.\n", total);
return 0;
}
용량 초과로 에러를 유발하게 된다.
int array[] = { 1,3,5,7,9 };
#include<stdio.h>
int main(void) {
int total = 0;
int arr[] = { 1,3,5,7,9 };
total = arr[0] + arr[1] + arr[2] + arr[3] + arr[4];
printf("배열의 총합은 %d입니다.\n", total);
return 0;
}
출력결과
배열의 총합은 25입니다.
초기값의 개수를 보고 컴파일러는 배열의 길이를 계산한다.
배열의 길이는 5로 설정한다.
배열은 요소끼리 복사해야 한다.
#include<stdio.h>
int main(void) {
int total = 0;
int arr[5] = { 1,2,3,4,5 };
int dest[5];
dest[0] = arr[0];
dest[1] = arr[1];
dest[2] = arr[2];
dest[3] = arr[3];
dest[4] = arr[4];
total = dest[0] + dest[1] + dest[2] + dest[3] + dest[4];
printf("배열의 총합은 %d입니다.\n", total);
return 0;
}
출력결과
배열의 총합은 15입니다.
for문으로 바꾸기
#include<stdio.h>
int main(void) {
int total = 0;
int arr[5] = { 1,2,3,4,5 };
int dest[5];
for (int i = 0; i < 5; i++) {
dest[i] = arr[i];
total += dest[i];
}
printf("배열의 총합은 %d입니다.\n", total);
return 0;
}
#include<stdio.h>
int main(void) {
int arr1[3] = { 1,2,3 };
int arr2[3];
for (int i = 0; i < 3; i++) {
arr2[i] = arr1[i];
printf("%d ", arr2[i]);
}
return 0;
}
출력결과
1 2 3
#include<stdio.h>
int main(void) {
int arr1[5] = { 1,2,3,4,5 };
int arr2[5];
for (int i = 0; i < 5 ; i++) {
arr2[i] = arr1[4-i];
printf("배열 arr2[%d] = %d\n", i, arr2[i]);
}
return 0;
}
출력결과
배열 arr2[0] = 5
배열 arr2[1] = 4
배열 arr2[2] = 3
배열 arr2[3] = 2
배열 arr2[4] = 1
char str[12] = "Hello World"
문자열을 세어보면 총 11개인데, 11+1로 1개 더 설정한 이유는 문자열의 끝에 null문자가 추가되기 때문이다. (\0)
null 문자를 쓰는 이유?
#include<stdio.h>
int main(void) {
char str[] = "Hello World";
printf("*** 문자열 변경 전 ***\n");
printf("%s\n\n", str);
str[6] = 'K';
str[7] = 'o';
str[8] = 'r';
str[9] = 'e';
str[10] = 'a';
printf("*** 문자열 변경 후 ***\n");
printf("%s \n\n", str);
return 0;
}
출력결과
*** 문자열 변경 전 ***
Hello World
*** 문자열 변경 후 ***
Hello Korea
문자열의 끝에는 null 문자가 추가된다.
char str[100] = "Beautiful";
문자수는 9개, 배열의 개수는 100개, 91개의 공간이 빈다
91개의 공간에는 쓰레기 값으로 채워져 있다.
사람은 구분이 가능하지만, 컴퓨터는 구분이 불가능하다.
컴퓨터가 문자열의 끝을 인식하기 위해 \0을 표시한다.
"Beautiful"의 공간은 9개가 아니라 null을 포함하여 10개이다.
컴퓨터에게 \0(null)값 까지만 해석하라는 의미
때문에 모든 문자열은 저장하기 위한 공간이 +1이 필요하다. 자동으로 포함됨.
#include<stdio.h>
int main(void) {
char str1[100] = "Beautiful";
for (int i = 0; i < 10; i++) {
printf("%c ", str1[i]);
}
printf("\n");
printf("str1 = %s \n", str1);
return 0;
}
출력결과
B e a u t i f u l
str1 = Beautiful
int main(void) {
char str1[] = "hello world";
printf("str1 = %s\n", str1);
str1[3] = '\0';
printf("str1 = %s\n", str1);
str1[0] = '\0';
printf("str1 = %s\n", str1);
return 0;
}
출력결과
str1 = hello world
str1 = hel
str1 =
Screen2 블록
Screen3 디자인
Screen3블록
확장 기능 Look 다운로드