기억 부류, 배열 기초
auto와 static의 차이점 기말고사 출제(출처 : Smile Han의 C 언어 프로그래밍)
static 이해하는 것이 중요
생명주기(life time), 가시성의 범위(scope) 정리
(출처 : Claude Ai)
지역 변수(local)와 전역 변수(global)의 차이점 인지
VS에서 스택(stack)의 최대 크기를 1MB 사용하고 있음, 스택 개념 유의
지역 변수는 stack에, 전역 변수, static 변수, 문자열은 데이터 영역에 저장됨
(출처 : Python tutor 사용)
중간에 있는 지역 변수 k는 블럭을 빠져나오면 사라짐
지역 변수와 전역 변수가 같으면 지역 변수가 우선이다(중복되지 않게 사용하자)
지금까지 사용했던 변수 앞에는 auto가 생략된 것
지역 변수 예시
기말고사 출제
처음 실행할때 13행은 건너뜀 => 프로그램을 실행했을 때 초기화가 됐기 때문에
x, y 모두 지역 변수인 점 유의(y를 밖에서 사용할 수 없음)
전역 변수는 되도록 사용하지 않는 것이 좋음
auto, (지역)static, 전역 변수 차이점 알아둬야 함
(Claude Ai)
★ 예제 9.3 9.5 출제 ★
배열(array) 기초
대괄호[]로 사용
0부터 시작하는 것 주의
0 1 2 만 있기 때문에 3은 에러가 발생한다
배열을 초기화 할 때는 중괄호{}를 사용
모두 0으로 초기화됨
첫 번째만 1로 초기화, 나머지는 0으로 초기화 됨
문자 배열 문자열 배열 예시(문자열 배열 마지막에 널 문자 들어가는 것 확인)
예제 10.1과 같음
x는 1이 저장된 곳의 주소, x+2는 2가 저장된 곳의 주소이다.(시험 출제★)
★배열의 이름은 배열의 시작 주소
배열을 활용하면 소스를 간단하게 짤 수 있다
★2차원 배열 초기화 하는 방법 유의
방 번호 주의(기말고사 출제 ★)
널 문자 반드시 유의
★주소를 출력할때 콤보박스를 사용하여 64비트와 32비트로 출력할 수 있다(x86 = 32비트)
널 문자가 없어서 발생하는 에러
★ %s 는 첫 번째 널 문자 전까지 출력한다
scanf() 함수의 버퍼 오버플로우 문제점
%9s로 수정 예시
자료형 주의
★종합 실습 소스 이해 필수★