내가 보려고 기록하는 중요 부분 정리
if ~ else
switch ~ case
for ~
while ~
do ~ while
: C 프로그램에서 기본적으로 제공되는 함수
ex)
stdio.h
stdlib.h
time.h
math.h
: 사용자가 필요에 의하여 정의하는 함수
int num[10];
자료형의 크기가 int형이고 크기는 10인 num이라는 배열을 생성한다.
초기값을 추가적으로 선언해주지 않았기 때문에 결과는 garbage값이 나올 것이다.
#include <stdio.h>
void main(){
int arr[10]; // -1로 초기화
arr[0] = 1;
arr[1] = 2;
int length = sizeof(arr) / sizeof(int);
printf("len: %d\n", length);
for (int i = 0; i < length; i++){
printf("%d\n", arr[i]);
}
}
위를 보면 len은 length를 뜻하고 length는 arr의 배열 인자를 printf로 차례로 나열한다.
초기값은 0, 1번째 인덱스에서만 선언되있기에 나머지값은 터무니없는 쓰레기값으로 추출되는 것을 확인할 수 있다.
예시를 살펴보자.
float height[100] = {0};
위의 배열은
첫째, float 크기를 갖고
둘째, height라는 이름을 갖고 있고
셋째, 100개의 값을 갖는데
넷째, 그 값들은 모두 0이다.
int num[3][2];
위의 num[3][2]처럼 행만이 아니고 열도 갖는 배열을 2차원 배열이라고 한다.
때때로 초기값을 설정할 때 2차원 배열인데 열의 크기를 명시하지 않은 배열들이 있다.
int num[][2] = { 1,2,3,4,5,6,7,8 };
유효한 선언이다.
그리고 배열에 접근해서 값을 변경하고 싶을 땐
num[0][2] = 11 처럼 배열 이름과 변경하고 싶은 인덱스 번호 그리고 값을 명시해주면 된다. 아참, 인덱스 번호는 첫번째가 0부터 시작한다.
선언할 때에는 갯수 개념 ( 1부터 시작 )으로 생각해야 하고 접근할 때는 인덱스 번호 ( 0부터 시작 ) 으로 생각해야 한다.
아래는 2차원 배열 선언 예시다.
int a[]={1,2,3,4}
위의 경우처럼 배열의 크기를 설정하지 않은 경우도 유효하게 값이 설정된다.