본문 바로가기
카테고리 없음

C프로그래밍 복습 13주차 과제

by tlsekdus 2026. 5. 27.

주석달기

 

위의 소스코드 주석 정리

 

 

출처: Smile Han의 C언어 프로그래밍

라이프 타임은 언제 만들어져서 언제 사라지는 지를 의미하고, 어디서 접근할 수 있는지를 스코프라고 함.

 

출처: Smile Han의 C언어 프로그래밍

지역변수: 해당 함수나 블록({}) 내에서만 사용 가능

전역변수: 소스 전체에서 사용 가능

 

컴퓨터의 메모리: RAM

 

출처: Smile Han의 C언어 프로그래밍

 

지역변수 저장: stack

전역변수, static변수 저장: bss, data

 

지역변수는 그 블록 내에서만 유효함. 전역변수는 어디에서나 영향을 미침

 

출처: Smile Han의 C언어 프로그래밍

auto생략이 가능하며, stack 공간을 일시적으로 사용함.

( int a도 원래는 auto int a라고 사용 )

 

 

 

구분 키워드 초기화 시점 값 유지 여부 (함수 종료 시)
일반 변수 auto (생략 가능) 함수가 호출될 때마다 매번 소멸됨 (기억 못 함)
정적 변수 static 프로그램 시작 시 딱 한 번 유지됨 (이전 값 기억함)

 

결론적으로 x는 함수가 실행될 때마다 초기화되어 계속 10을 출력하는 것이고, y는 초기화가 한 번만 일어나고 함수가 호출될 때마다 값이 1씩 누적되어 출력되는 것

 

변수 종류 키워드 선언 위치 통용 범위 (Scope) 생존 기간 (Lifetime) 초기값 저장되는 메모리 영역
지역 변수 생략 가능 함수나 블록 {} 내부 선언된 함수나 블록 내부 함수/블록 종료 시 소멸 쓰레기값 스택 (Stack)
auto 변수 auto 함수나 블록 {} 내부 지역 변수와 완벽히 동일 지역 변수와 동일 쓰레기값 스택 (Stack)
정적 변수 static 함수 내부 또는 외부 함수 내부: 해당 함수 안

함수 외부: 해당 소스 파일 안
프로그램 시작 ~ 종료 0 데이터 (Data / BSS)
전역 변수 없음 모든 함수 외부 프로그램 전체 (어디서나) 프로그램 시작 ~ 종료 0 데이터 (Data / BSS)

 

 

기호 이름 주요 키워드 한 줄 요약
() 소괄호 (Parentheses) 함수, 연산 우선순위 "실행해라!" 또는 "먼저 계산해라!"
{} 중괄호 (Curly braces) 코드 영역, 딕셔너리/객체 "여기서부터 여기까지 한 묶음!"
[] 대괄호 (Square brackets) 리스트/배열, 인덱싱 "데이터 목록" 또는 "몇 번째 값 꺼내줘!"

 

 

 

파이썬 배열과 c언어 배열 비교

 

 

 

문자형 배열을 쓸 때에는 char형을 쓰며, 큰 따옴표를 해서 한 번에 사용함. 마지막에는 NULL문자도 자동으로 들어감.

 

 

 

 

 

 

 

 

 

여러 개를 입력할 때에는 배열을 사용함.

 

첨자는 [0][0]부터 시작함. 오른쪽부터 시작하며 마지막 방은 하나 더 적은 방임

 

자칫하면 방이 4개로 보일 수도 있지만, 문자열형이기 때문에 마지막에 NULL문자가 생성되어있음.

따라서 방은 5개. (문자열형이기에 %c가 아닌 %s를 씀)