배열(array) - (2)

@Super_E끌림·2024년 5월 30일
post-thumbnail

⛅️오늘의 이야기

  • 1차원 배열 vs 2차원 배열

  • 배열의 자료형 : char vs int <--- 이번 내용





📌들어가기 전에..

한 말씀 하겠습니다.

아니요 하지 않겠습니다.

여기서는 정상적인 출력만 다루고

이 시리즈 마지막 즉, 다음 내용에서 어떨때 이상하게 출력되는지 알아보겠습니다.





배열 자료형 잡으러 가볼까...?





💁🏻‍♂️ 배열의 자료형 : char vs int

이게 배열 저장되는 이론에서 굉장히 중요한 내용 입니다.

문자형이냐 정수형이냐에 따라

배열에 종료 문자( \0 )이 붙고 안붙습니다.



  • 1) char type

    char type은 종료 문자( \0 )이 붙습니다.

    이 종료 문자( \0 )은 어느 누가 와도 그 자리를 뺏지 못합니다.

    한 단어로 말하자면 고정석 입니다.


    • 문자(c)

      #include <stdio.h>
      
       int main(void){
          int x;
          scanf("%d",&x); // 배열 크기 지정
          char arr[x];
      
          for(int i=0;i<x;i++){
              scanf("%c",arr[i]);
          }
          
          for(int i=0;i<x;i++){
            printf("%c",arr[i]);
          }
       }

      입력 : 10
                abcdefghi

      출력 : abcdefghi

    • 문자열(s)

      #include <stdio.h>
      
       int main(void){
          int x;
          scanf("%d",&x); // 배열 크기 지정
          char arr[x];
      
          scanf("%s",arr[0]);
          
          for(int i=0;i<x;i++){
             printf("%c",arr[i]);
          }
       }

      입력 : 10
                abcdefghi

      출력 : abcdefghi


      위에서 말했다시피 정상적인 출력을 예시로 하기 때문에

      설명이 별 의미가 없을거 갔아 그림으로 대체 하겠습니다.


    • 배열 저장 형태

      배열에는 문자로 저장되기 때문에 문자 / 문자열로 받든 상관없이 위와 같이 저장됩니다!


      제가 앞에서 배열(array) -(1)에서 종료 문자( \0 )을 null로 표현했는데 틀린거고 '\0'로 저장해야 됩니다.

      근데 이 그림에서는 '₩0'으로 표현되어 있는데 이거 또한 종료 문자를 나타냅니다.

      프로그램마다 나타나는 문자가 다를 뿐이지 의미는 같습니다.




  • 2) integer type

    integer type은 종료 문자( \0 )이 붙지 않습니다.



    #include <stdio.h>
    
     int main(void){
        int x;
        scanf("%d",&x); // 배열 크기 지정
        char arr[x];
    
        for(int i=0;i<x;i++){
            scanf("%d",arr[i]);
        }
    
        for(int i=0;i<x;i++){
           printf("%d",arr[i]);
        }
     }

    입력 : 10
              12 1 3 4 5 9 110 2191 59 30

    출력 : 121345911021915930

    숫자의 특성상 정수형은 띄어쓰기로 반드시 구분 해야합니다.

    • 배열 저장 형태






🫧마무리

오늘은 그다지 어렵지 않았을거라 믿고 끝내겠습니다.

다음은 배열의 이론중심적인 내용에 대해 알아보겠습니다.





profile
SoC:) SoC:)

0개의 댓글