CreamPuff's HACK LAB
[코딩 연습/C] 4일차 (021~025) 본문
코딩 연습 출처 : 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)
정수 배열과 다르게 공간의 크기를 추가 입력해주어야 한다.
'이전 글' 카테고리의 다른 글
[코딩 연습/C] [036~060] 컴파일러 에러로 인한 출력 오류로 skip (0) | 2019.05.12 |
---|---|
[코딩 연습/C] 5일차 (026~035) (0) | 2019.05.10 |
[코딩 연습/C] 3일차 (011~020) (0) | 2019.05.07 |
[코딩 연습/C] 2일차 (006~010) (0) | 2019.05.06 |
[코딩 연습/C] 1일차 (001~005) (0) | 2019.05.05 |