[C언어] C 프로그램의 형태

이가영·2023년 8월 4일
0

C언어

목록 보기
3/16

프로그램의 구성과 실행과정

프로그램은 함수들로 만들어진다

  • 함수는 입력되는 데이터를 가공, 판단, 반복, 처리하여 특별한 출력을 만들어내는 단위코드이다.

메인함수( main() )

  • 세 개의 함수로 구성된 프로그램(10과 20을 더하여 화면에 출력)
  • 프로그램에는 반드시 하나의 메인함수가 있어야 한다.
  • 컴퓨터가 프로그램을 시작하기 위해서 항상 main 함수를 호출한다.
  • 프로그램의 시작점
  • 함수는 머리와 몸통으로 구성된다.

함수의 머리

함수의 머리에는 세 가지 정보를 표현

  • "함수의 기능에 맞는" 함수의 이름
  • 함수가 기능을 수행하는 데 필요한 데이터의 개수와 형태
  • 함수가 기능을 수행하고 나서 돌려주는 값의 형태

10과 20을 더하는 기능을 가진 함수의 예

int sum(int a, in b)

int : 돌려주는 값의 형태
sum : 함수의 이름
int a, int b : 필요한 데이터의 개수와 형태

  • 메인함수의 머리는 데이터의 개수와 형태가 생략된 것이다.
int main()
   -> int main(int argc, int *argv[])

함수의 몸통

  • 함수의 머리 다음 줄부터 중괄호를 열어서 시작
  • 실행문장 들은 중괄호 안쪽으로 들여쓰기 한다
  • 실행문장은 한 줄에 한 문장씩 작성하며 문장 끝에 세미콜론을 붙인다
  • 함수 내에서 실행문장은 위에서부터 차례로 실행된다
  • 함수를 끝내기 전에 return문을 사용하여 정수값을 돌려준다

※실행문장은 위에서 아래로 하나씩 실행된다


화면에 문자열 출력

  • 문자열은 큰따옴표("")를 사용하여 표현
  • 출력할 문자열을 printf함수의 괄호 안에 넣어서 호출
printf("Hello World!");
  • printf함수를 사용하기 위해서 stdio.h헤더파일을 include한다
#include <stdio.h>

int main()
{
	printf("Hello World!");
    return 0;
}

-> 화면 출력
Hello World!

화면에 정수값 출력

-printf 함수는 기본적으로 문자열만을 출력하므로 정수값을 출력할 때는 문자열로 변환시키는 과정이 필요하다

printf("%d", 10);  
  -> 화면 출력 : 10
  • 여러 개의 정수값을 출력할 때는 변환문자열을 그 수만큼 사용한다
printf("%d %d", 10, 20);
  -> 화면출력 : 10 20
  • 수식의 결과값을 바로 출력할 수 있다
printf("%d", 10+20);
  -> 화면출력 : 30

화면에 문자열과 정수값을 한번에 출력

  • 출력할 문자열 안에 변환문자열을 넣어 함께 사용한다
printf("은하철도 %d", 999);
  -> 화면출력 : 은하철도 999
  • 정수값이 여러 개라면 변환문자열도 그 개수에 맞게 사용한다
printf("%d과 %d의 합은 %d입니다.", 10, 20, 30);
  -> 화면출력 : 1020의 합은 30입니다.

화면에 줄 바꾸어 출력

  • 줄을 바꾸기 위해서는 줄바꿈 서식문자(\n)를 사용해야 한다
printf("[이름]  [나이]\n");
printf("===============\n");
printf("홍길동   21");
  -> 화면출력 : [이름]  [나이]
              ===============
              홍길동    21

변수의 선언

  • 변수는 데이터를 저장할 수 있는 메모리의 기억공간이다
  • 컴파일러에게 형태와 이름을 알려준다
    -변수의 형태 : 변수가 저장할 수 있는 값의 종류
    -변수의 이름 : 사용할 메모리 기억공간의 이름
  • 정수값을 저장하기 위해서는 int 예약어를 사용한다
int num; // int: 변수의 형태, num: 변수의 이름
  • 같은 형태의 변수는 한번에 선언할 수 있다
int ping;
int pong;
한 문장으로 -> int ping, pong;

변수에 값을 저장(대입문)

변수에 값을 저장할 때는 대입연산자(=)를 사용한다

  • 대입연산자는 오른쪽의 값을 왼쪽의 변수에 저장한다.
num = 10;
  • 대입연산자 왼쪽에는 값을 저장할 기억공간(변수)이 와야 한다.
  • 대입연산자 오른쪽에 변수가 올 때는 그 값을 왼쪽의 변수에 복하는 것이다.
  • 변수를 사용하여 10과 20을 더해서 출력하는 프로그램
#include <stdio.h>
int main()
{
	int sum;
    sum = 10 + 20;
    printf("%d", sum);
    return 0;
}

초기화

  • 변수를 선언하여 할당된 기억공간에는 쓰레기값이 있다.
#include <stdio.h>
int main()
{
	int num;
    printf("쓰레기값 : %d\n", num);
    return 0;
}
  -> 쓰레기값 : -858993460
  • 초기화는 변수의 선언과 동시에 값을 저장하는 것이다.
int height:
height = 168;
 초기화 -> int height=168;

정수값 입력

  • 키보드에서 입력하는 것은 모두 문자열이다.

    -키보드에서 10을 입력하면 문자1과 문자0이 붙어 있는 문자열이 된다.
    -따라서 키보드 입력을 수치값으로 변환하여 변수에 저장한다.
  • 정수값을 입력 받을 때는 %d 변환문자열을 사용한다.

  • 변수명 앞에 &기호를 사용한다.

scanf("%d", &num);
  • 키보드로부터 변수에 정수값을 입력 받아 출력하는 예
#include <stdio.h>
int main()
{
	int num;
    printf("정수값 하나를 입력하세요 : ");
    scanf("%d", &num);
    printf("입력받은 정수값은 %d입니다.\n", num);
    return 0;
}
  • 여러 개의 변수에 값을 한번에 입력받을 수 있다.
    -이 때는 변수의 개수에 맞게 변환 문자열을 사용한다.
int num1, num2;
scanf("%d%d", &num1, &num2);
  • 두 정수값을 입력할 때는 두 값 사이에 공백, 탭, 엔터키를 쳐서 두 값을 구분해야 한다.
정수값 두 개를 입력하세요: 10 20(엔터) //10 20 사이에 하나 이상의 공백, 탭, 엔터키를 친다.

scanf함수 사용시 주의할 점

  • 변환 문자열과 함께 불필요한 문자열을 사용하지 않는다.
scanf("정수값 하나를 입력하세요 : %d", &num); 
//정수값 하나를 입력하세요 -> 불필요한 문자열

※출력과 입력을 구분하여 작성한다.

printf("정수값 하나를 입력하세요 : ");
scanf("%d", &num);
  • 공백이나 줄바꿈 문자 등도 사용하지 않는다.
scanf("%d %d", &num1, &num2);  // 공백X
scanf("%d\n", &num);  // 줄바꿈X

프로그램을 작성하는 순서

  • 데이터를 입력하기 전에 반드시 입력할 데이터를 저장할 기억공간이 있어야 한다. 즉, 변수선언이 입력문 전에 있어야 한다!!
  • 일반적인 프로그램의 작성 순서

    변수 선언 -> 데이터 입력 -> 데이터 처리 -> 결과 출력
  • 프로그램의 문장을 구분하는 것은 세미콜론(;)이다.
    한 줄에 여러 문장을 작성해도 되고 한 문장을 여러 줄에 작성해도 된다.
  • 프로그램은 알아보기 쉽게 관례에 따라 형식을 지킨다!

주석문

  • 주석문은 프로그램의 가독성을 높인다.
  • 한 줄 주석문(//)
    -주석기호 이후 그 줄 끝까지 모두 주석처리가 된다.
printf("Hello World!\d");  // Hello World!출력
  • 여러 줄 주석문
    -여러 줄을 한꺼번에 묶어서 주석처리 할 수 있다.
    -"/"로 시작하여 "*/"로 끝을 표시한다.
// 메인함수가 전부 주석인 프로그램
#include <stdio.h>
/*
int main()
{
	int a=5, b=10, c=0;
    c = a+b;
    printf("%d\n", c);
    return 0;
}
*/

식별자

  • 식별자는 변수명, 함수명 등으로 사용된다.

식별자를 만드는 규칙

  • 알파벳 대문자 A~Z, 소문자 a~z, 숫자 0~9, 밑줄 _으로 구성된다.
  • 첫 문자에는 숫자가 올 수 없다.
  • 대문자와 소문자는 서로 다른 식별자다.
  • 예약어는 식별자로 사용할 수 없다.
    -예약어는 컴파일러와 그 의미가 약속되어 있는 단어

식별자

result
Honggil_dong
_ab_c

world7
Korea

식별자X

28man
hello-world
Dr kim -> 띄어쓰기X
int(예약어) -> X

profile
gy’s portfolio

0개의 댓글