티스토리 뷰

1. C 소스 파일의 기본 구조

 

 

C언어로 코드를작성하면 이를 컴퓨터가 알아들을 수 있는 기계어로 번역하는 과정이 필요하고

이를 컴파일(compile)

이 역할을 하는 프로그램을 컴파일러(complier) 라고 한다.

현재 사용하고 있는 비주얼 스튜디오가 바로 컴파일러인 것.

 

코드를 작성하는 사람은 컴파일하기 전에 필요한 것들을 컴파일러에게 알려 줘야 하는데 이때 사용하는 것이 전처리기 지시문 이다.

전처리기 지시문 (preprocessor directive)

  • # 으로 시작
  • 뒤에 붙는 지시자에 따라 용도가 달라진다

#include 는 가장 많이 사용하는 지시문으로, 지정한 파일을 코드에 포함하라 라는 뜻이다.

 

 

 

* 지시문 뒤에 파일을 표시하는 방법

  1. C 언어에 정의된 표준 파일을 추가할 때

      :   홑화살괄호(<>)로 파일을 추가 →  컴파일러가 있는 폴더에서 해당 파일을 찾음

  2. 직접 작성한 파일을 코드에 포함할 때

     : 큰따옴표(" ")로 파일을 추가  →  현재 소스 코드가 있는 폴더에서 해당 파일을 찾음

 

 


 

 

stdio.h : 표준 입출력 함수를 포함한 헤더 파일(header file)

               헤더파일은 확장자가 h인 파일로, 다른 파일에 정의된 상수나 변수, 함수 등을 사용하기 위해 만들어짐.

int main(void) {} : main이라는 이름의 함수 정의

main() 함수 : 모든 프로그램의 시작점으로, 한 프로젝트 안에 반드시 하나만 존재하고, main() 함수가 없다면 프로그램이 실행되지 않고 오류 발생!

int main() 함수가 반환하는 값의 자료형. (정수형)      따라서 main() 함수가 반환하는 값이 정수라는 의미이다.

void : 함수가 전달받는 값. void를 넣으면 전달받는 값이 없다는 뜻

중괄호{} 안에는 함수 본문 작성

명령어 : 한 줄에 한 문장씩 작성

printf() : () 안 내용을 화면에 출력하라는 명령어

세미콜론 ; : 문장마다 마지막에는 문장의 끝을 나타내는 ; 입력

return : 함수 마지막에는 return문을 입력

 

 


 

 

2. 변수

 

변수는 변하는 수(값), 상수는 변하지 않는 수(값)이다. 예를 들어 나이는 상수가 아닌 변수이다.

20살의 나이를 코드로 표현하면 다음과 같다.

int : 정수형 자료

age : 변수의 이름(변수명)

20 : 자료형에 해당하는 값. 20은 정수이기 때문에 앞에 자료형으로 int를 쓴다.

변수와 값 사이에 등호(=) : 대입 연산자 (값을 저장한다) 

따라서 이 문장은 정수 20을 age라는 변수에 저장하라는 의미가 된다.

 

 


 

 

* 변수명 작성 규칙

  1. 알파벳, 숫자, 밑줄(_)을 사용한다. 이때 알파벳은 대소문자를 구분한다.
  2. 첫 글자는 숫자로 시작할 수 없으며, 이름에 공백은 포함할 수 없습니다.
  3. C언어에서 키워드로 지정된 단어는 사용할 수 없다. 키워드란 자료형을 나타낼 때 사용하는 int 같은 단어.

 

 


 

 

변수를 만드는 이유는? 프로그래밍에서 값을 사용하려면 컴퓨터가 값을 기억해야한다. 값을 기억하는 역할은 컴퓨터의 메모리가 담당.

변수 선언 : 변수를 만들면 컴퓨터는 값을 저장하겠다는 신호로 알고 메모리에 변수명으로 공간을 할당한다.

자료형 변수명;

 

 

초기화 : 변수를 선언하고 나면 메모리에 변수명으로 된 공간이 생기고, 여기에 대입 연산자를 사용해 변수에 값을 넣어 저장한다. 초깃값을 넣는 과정.

초깃값 : 변수에 처음 넣는 이 값.

자료형 변수명 = 값;

 

 

변수를 선언한 후 따로 초기화

 

변수를 선언할 때 동시에 초기화

 

 

 


 

 

 

%d : 정수형 값을 출력하라 (서식지정자)

쉼표(,) 다음에 있는 값이 %d 자리에 들어가서 출력된다.

 

 


 

 

 

서식 지정자 (format specifier) : 컴퓨터가 데이터를 어떻게 해석해야 하는지 알려 주는 텍스트나 기호

값이 여러개인 경우  →  서식 지정자를 출력할 값의 개수만큼 넣고 띄어 쓴다. 그리고 넣을 값들을 쉼표로 구분해 입력.

자료형 서식 지정자 설명
int %d 값이 정수일 때
float %.nf 값이 실수, n은 출력할 소수점 이하 자릿수, n+1 자리에서 반올림
double %.nlf 값이 실수, n은 출력할 소수점 이하 자릿수, n+1 자리에서 반올림
char %c 값이 문자일 때
%s 값이 문자열일 때

 

 

 


 

 

 

int 변수명 = 값;   // 정수형 변수 선언 및 초기화

printf("%d", 변수명);   // 정수형 변수의 값 출력

변수명 = 값;   // 변수의 값 바꾸기   (선언한 변수에 다시 값을 넣을 때는 자료형 int를 넣지 않아도 ok)

 

 


 

 

3. 상수

변하지 않는 수(값)

상수로 한 번 선언하면 더 이상 변수의 값을 바꿀 수 없다.

상수를 만들려면 변수를 만들 때 앞에 const를 넣으면 되고, 상수일 때는 변수명을 꼭 대문자로 작성한다.

const 자료형 변수명(대문자) = 값;

 

 

변수를 만들 때 앞에 const라고 적어 이 값이 상수라는 것을 컴퓨터에게 알려 준다.

YEAR 빨간 줄 (식이 수정할 수 있는 lvalue여야 합니다) : const로 선언하면 이후에는 그 값을 변경할 수 없다는 뜻

 

 


 

 

4. printf() 출력

 

 

3이 첫번째 %d에, 7이 두번째 %d에, 3+7이 세번째 %d에 들어감.

 

printf("서식지정자 서식지정자 ... \n", 변수명1, 변수명2, ...);

출력할 값이 여러 개이면 서식 지정자도 출력할 값의 개수만큼 넣는다.

서식 지정자는 띄어쓰기로 구분

변수(값)는 쉼표로 구분

 

 


 

 

C언어는 printf로 출력할 때 pintf(%d, %f, %c)를 사용해야한다.

  • printf(%d) = 정수형 데이터 출력
  • printf(%f) = 실수형 데이터 출력
  • printf(%c) = 문자형 데이터 출력

 

문자 char 문자명 %c
문자열(한 글자 이상의 여러 글자) char 문자열명[배열크기] %s

 

 

 


 

 

5. scanf() = scanf_s()    입력  

 

키보드로 값을 입력받아 저장하라는 명령어

scanf_s() 함수에서 큰따옴표 사이에 서식 지정자 %d : 정수형 값을 입력받겠다

쉼표(,) 뒤에는 입력받은 값을 저장할 위치를 넣는다. 위에서는 input 변수에 넣겠다는 의미

 

앰퍼샌드 & (ampersand) : 메모리의 주소

즉, &input은 input 변수가 할당된 메모리의 주소를 의미하며, 이 주소에 키보드로 입력받은 값을 넣으라는 뜻.

포인터 부분에서 자세히 알아볼테니 지금은 변수 앞에 &를 붙여 입력값을 저장할 위치를 표시한다고만 알아두자!

 

 

 

 

각 값은 스페이스를 눌러 구분한다.

실행결과
정수 3개를 입력하세요 : 100 200 300
첫 번째 값 : 100
두 번째 값 : 200
세 번째 값 : 300

 

 

 


 

 

5-1. 문자형 변수로 입력받기

  • 문자 : 한 글자
  • char : 문자형 변수를 선언할 때 쓰는 자료형
  • %c : 문자형 변수의 값을 출력할 때 쓰는 서식 지정자
  • 값이 문자일 때는 작은따옴표(' ')로 표시

 

char 변수명 = '값' ;

 

 

 

 

 

  • 문자열 : 여러 문자의 모임
  • char str[256];
  • %s : 문자열을 입출력할 때 쓰는 서식 지정자

문자열은 보통 값에 여러 문자가 한 번에 들어가기 때문에 일반 변수가 아닌 배열(array)을 사용한다.

char str[256];

이 코드는 문자를 저장하는 c와 같은 문자형 변수 256개를 연속으로 만든다는 뜻.

 

그런데 scanf_s로 문자열을 입력받으려면 크기를 명시해야한다.

왜? str은 총 256개 공간을 만들기 떄문에 256개보다 더 큰 문자가 들어오면 문제가 발생할 수 있다.

이것이 scanf()와 scanf_s의 차이점!

해결? sizeof 연산자를 써서 str 변수의 크기만큼, 즉 256개 이내의 문자만 받겠다고 알려줘야한다.

sizeof ( 변수명 / 배열명 / 자료형)

 

 

 

 

 

 


 

 

 

프로젝트

 

 

 

 

 

 

 

 


 

 

셀프체크

 

 

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함