CreamPuff's HACK LAB

[코딩 연습/C] 4일차 (021~025) 본문

이전 글

[코딩 연습/C] 4일차 (021~025)

CreamPuffx2 2019. 5. 8. 01:08

코딩 연습 출처 : https://cafe.naver.com/funcc

※ 아래 내용은 글쓴이 개인적으로 공부하며 끄적인 것으로,

정확한 정보가 아닐 수 있습니다.

정확한 정보는 카테고리 'C'나,

전문 서적을 참고하세요!

 

021. 정수와 문자열 입출력

"배열명은 입력받을 때 &를 붙이지 않는다."


022. 여러 형식 입출력

while(getchar() != '\n'); 위치 주의!

* 다음 입력받을 값이 문자일 때만 입력한다.


023. 구조체 입출력

"m.alt에서 .멤버 접근 연산자"

* 구조체 선언 : typedef struct (구조체명) { }(구조체명);

- typedef : type definition의 줄임인 듯

'유형 정의?', '정의 유형?'

- struct : 구조체를 말하는 듯


구조체!! 새로운 개념이다!!

새로운 거 발견하는 게 왜 이리 재밌는지ㅋㅋ

오늘 기분이 좋다 ♬


024. 정수 배열 입출력

* bus[5]을 선언할 경우 

요런 식으로 표를 만든다고 생각하면 될 듯하다.

정수 배열 bus의 크기는 20임을 보고 추측해보건대,

int형 자료가 입력될 수 있는 공간을 5개 확보해놓은 듯하다.

즉, int bus[5]를 쪼개 보면

- int : 공간의 자료형 & 공간의 크기(4byte)

- bus : 공간 집합체의 이름

- [5] : 공간의 개수

'공간의 개수 : 집합체 내의 변수의 개수'라고 생각하자.


"C언어는 항상 0을 카운트한다."

처음으로 반복문이 나왔다.

for (i=0; i<n; i++);

i는 반복문 카운트를 위한 변수

n은 sizeof(bus) / sizeof(int)

즉, 20 / 4 = 5이다.

따라서 i는 0부터 4까지 1씩 증가하며 아래 구문을 반복한다.


025. 문자열 배열 입출력

"char[20]개가 5개 모인 2차원 배열"

* 문자열 배열의 경우

문자 하나 당 공간이 필요하므로,

즉, 문자열은 문자의 집합이므로

2차원적인 배열이 필요한 듯하다.

즉 city[5][20]의 경우

요렇게 표를 생성한다고 생각하면 될 듯하다.

★ 문자열 자체가 애초에 1차원 배열이므로

문자열 배열은 1차원을 더 더해 2차원이 되는 것으로 이해하자.

다만 주의할 것은

[5]와 [20]의 의미를 구분할 것!

 

정리할 겸, char city[5][20]를 쪼개 보면

- char : 공간의 자료형

- city : 공간 집합체의 이름

- [5] : 공간의 개수

- [20] : 공간의 크기

* sizeof(char) = 1 → 1 x 20 = 20(byte)

정수 배열과 다르게 공간의 크기를 추가 입력해주어야 한다.