c++ 조건문 & 반복문 & 배열

FeelSoo·2022년 5월 25일
0
post-thumbnail
post-custom-banner

내가 보려고 기록하는 중요 부분 정리

< 조건문 구조 종류 >

  1. if ~ else

  2. switch ~ case



< 반복문 종류 >

  1. for ~

  2. while ~

  3. 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번째 인덱스에서만 선언되있기에 나머지값은 터무니없는 쓰레기값으로 추출되는 것을 확인할 수 있다.


그렇다면 초기값을 0으로 설정하고 싶을 때는 ?

예시를 살펴보자.

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}

위의 경우처럼 배열의 크기를 설정하지 않은 경우도 유효하게 값이 설정된다.

profile
세상은 넓고 배울건 많다
post-custom-banner

0개의 댓글