배열을 선언할때 맨 처음에 int형으로 선언했었습니다.

미해결질문
이창진 프로필

그랬더니 A를 하나만 입력했을떄는 #으로 잘 바뀌었는데

단어로 입력했을때는 바뀌지 않았습니다. 그러다가 강의를 보고 CHAR로 선언하니까 잘 바뀌게 되었는데 차이점이 자료형의 크기가 다른 거 말고 또 있나요??

김태원 프로필
김태원 2019.05.15

int 형 배열은 숫자(정수) 여러개를 넣도록 되어있는 4byte 짜리 정수형 변수의 나열입니다. 이곳에 문자열을 넣을 수 없습니다. 문자열은 char형 배열인 1byte짜리 문자형 변수의 나열에 넣어야 합니다.

문자 한개는 int 형 변수에 넣어도 되지만, 문자열는 1byte 단위로 관리되는 컴파일러의 메모리 관리 내부 규정이 아닐까 생각됩니다. 실제로 int a[10] 잡고, a배열에 %s 로 AbcdEfghStuv 를 입력하고 %c 로 a[0], a[1], a[2]를 출력하면 A, E, S가 출력됩니다. 

참고로 int a[10]="abcde"; 하면 에러가 납니다. %s로 int 배열에 입력해서 %s로 출력하면 정상적으로 출력되는 현상에 데에서는 저도 잘 모르겠네요.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스