1. A Tutorial Introduction

1.1. Getting Started

#include <stdio.h>
int main(){
  printf("hello, world\n");
}

ν•¨μˆ˜μ˜ 이름은 μ›ν•˜λŠ” λŒ€λ‘œ 뢙일 수 μžˆμ§€λ§Œ 메인 ν”„λ‘œκ·Έλž¨μ˜ 이름은 κΌ­ main으둜 ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€. main은 λŒ€κ°œ λ‹€λ₯Έ ν•¨μˆ˜λ“€μ„ ν˜ΈμΆœν•˜κ²Œ λ˜λŠ”λ° 같은 ν”„λ‘œκ·Έλž¨ 내에 μžˆλŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  μˆ˜λ„ 있고, λΌμ΄λΈŒλŸ¬λ¦¬μ— μžˆλŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  μˆ˜λ„ μžˆλ‹€. λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ—¬λŸ¬ κ°œκ°€ μžˆλŠ”λ° κ·Έμ€‘μ—μ„œ μš°λ¦¬κ°€ μ‚¬μš©ν•˜κ³ μž ν•˜λŠ” ν•¨μˆ˜κ°€ μ–΄λ–€ λΌμ΄λΈŒλŸ¬λ¦¬μ— μžˆλŠ”μ§€ ν”„λ‘œκ·Έλž¨μ— λͺ…μ‹œν•΄μ£Όμ–΄μ•Ό ν•œλ‹€. μœ„ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•œ ν•¨μˆ˜λŠ” printf이며 이 ν•¨μˆ˜λŠ” stdio(stands for standard input output, ν‘œμ€€μž…μΆœλ ₯라이브러리)에 λ“€μ–΄μžˆλ‹€. λ”°λΌμ„œ ν”„λ‘œκ·Έλž¨μ˜ 맨 첫쀄에

#include <stdio.h>

κ°€ μžˆλŠ” 것이닀.

λ§€κ°œλ³€μˆ˜λŠ” ν•¨μˆ˜μ΄λ¦„ λ°”λ‘œ 뒀에 μ˜€λŠ” κ΄„ν˜Έ 속에 써쀀닀. 예제의 ν•¨μˆ˜μ—λŠ” λ§€κ°œλ³€μˆ˜λ₯Ό λ„£μ–΄μ£Όμ§€ μ•Šμ•˜λ‹€. λ§€κ°œλ³€μˆ˜κ°€ 없더라도 κ΄„ν˜ΈλŠ” κΌ­ μžˆμ–΄μ•Όν•œλ‹€.

μ€‘κ΄„ν˜ΈλŠ” λ¬Έμž₯듀을 λ¬Άμ–΄μ„œ ν•˜λ‚˜μ˜ λ©μ–΄λ¦¬λ‘œ λ§Œλ“€μ–΄ μ£ΌλŠ” 역할을 ν•œλ‹€. μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” {}κ°€ mainν•¨μˆ˜μ˜ λ°”λ””λΌλŠ” 것을 λ‚˜νƒ€λ‚Έλ‹€.

ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•ŒλŠ” ν•¨μˆ˜μ˜ 이름과 λ§€κ°œλ³€μˆ˜λ§Œ 써 μ£Όλ©΄ λœλ‹€.

  printf("hello, world\n");

이 λ¬Έμž₯은 printfλΌλŠ” μ΄λ¦„μ˜ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜κ³  λ§€κ°œλ³€μˆ˜λ‘œ "hello, world\n"λ₯Ό μ „λ‹¬ν•˜κ³  μžˆλ‹€.

""λŠ” μΈμš©λΆ€ν˜Έλ‘œ 이 λΆ€ν˜Έ μ•ˆμ— μžˆλŠ” λ¬Έμžλ“€μ€ character string λ˜λŠ” string constant라고 λΆˆλ¦¬μš΄λ‹€.

λ‹€μ‹œ 예제λ₯Ό ν•΄μ„ν•˜λ©΄

#include <stdio.h>
// stdio 라이브러리 μ‚¬μš©
int main()
// main ν•¨μˆ˜ μ •μ˜. λ§€κ°œλ³€μˆ˜λŠ” μ—†λŠ” μƒνƒœλ‹€.
{
// main ν•¨μˆ˜ μ‹œμž‘
  printf("hello, world\n");
  //string 좜λ ₯을 μœ„ν•΄ printfν•¨μˆ˜ 호좜
}
// main ν•¨μˆ˜ μ’…λ£Œ

둜 정리할 수 μžˆλ‹€.

\n은 ν•˜λ‚˜μ˜ λ¬Έμžμ΄λ‹€. μ΄λŸ¬ν•œ 문자λ₯Ό escape 문자라고 ν•œλ‹€. 좜λ ₯의 양식을 μ •ν•΄μ€€λ‹€.

escape 문자

\n

\t

\b

\\

new line(return이라고도 ν•œλ‹€)

tab

backspace

\

1.2. Fahrenheit-Celsius table

#include <stdio.h>
/*
  print Fahrenheit-celsius table
  for fahr = 0, 20, ..., 300
*/
int main(){
  int fahr, celsius;
  int lower, upper, step;
  lower = 0; /* lower limit of temperature table */
  upper = 300; /* upper limit of temperature table */
  step = 20; /* step size */
  fahr = lower;
  while(fahr <= upper){
    celsius = 5 * (fahr-32)/9;
    printf("%d\t%d\n",fahr,celsius);
    fahr = fahr + step;
  }
}

/ / μ‚¬μ΄μ˜ λ¬Έμž₯은 comment둜 ν”„λ‘œκ·Έλž¨ 싀행에 μ•„λ¬΄λŸ° 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ”λ‹€.

주의: Cμ—μ„œλŠ” λͺ¨λ“  λ³€μˆ˜λŠ” μ‚¬μš©λ˜κΈ° 전에 μ„ μ–Έν•΄ μ£Όμ–΄μ•Ό ν•œλ‹€. μœ„μ˜ ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” 총 5개의 λ³€μˆ˜κ°€ μ“°μ˜€λ‹€.

intλŠ” λ³€μˆ˜μ˜ data-type이 μ •μˆ˜ν˜•μ΄λΌλŠ” 것을 μ˜λ―Έν•˜κ³  λ’€μ˜ fahr, celsiusλŠ” λ³€μˆ˜ 이름이닀.

μ‹€μˆ˜ν˜• λ³€μˆ˜μ—λŠ” float이 μžˆλŠ”λ° λΆ€λ™μ†Œμˆ˜μ (floating-point)을 μ˜λ―Έν•œλ‹€. κ·Έ μ™Έμ˜ κΈ°λ³Έ data-typeμ—λŠ” λ‹€μŒκ³Ό 같은 것듀이 μžˆλ‹€

type

descriptio

char

λ¬Έμžν˜• 1λ°”μ΄νŠΈ

short

단정도 μ •μˆ˜ν˜•

long

배정도 μ •μˆ˜ν˜•

double

배정도 λΆ€λ™μ†Œμˆ˜μ 

κ·Έ λ‹€μŒμ€ 각 λ³€μˆ˜μ˜ μ΄ˆκΈ°κ°’μ„ μ§€μ •ν•΄μ£ΌλŠ” μ˜μ—­μ΄ μžˆλ‹€.

같은 방법을 μ—¬λŸ¬λ²ˆ μ‹€ν–‰ν•˜λŠ” 것은 while문을 톡해 ν•  수 μžˆλ‹€. λ’€μ˜ κ΄„ν˜Έ μ†μ˜ 쑰건이 λ§Œμ‘±λ˜λŠ” λ™μ•ˆλ§Œ 반볡 μˆ˜ν–‰ν•œλ‹€λŠ” μ˜λ―Έλ‹€.

whileλ’€μ—λŠ” μ€‘κ΄„ν˜Έκ°€ μ˜€λŠ”λ° ν•œλ¬Έμž₯만이 쓰인닀면 μ€‘κ΄„ν˜Έλ₯Ό μƒλž΅ν•΄λ„ 상관없닀.

while (i<j)
  i=2*i;

그리고 mainκ³Ό whileλ¬Έ μ•ˆμ˜ λ¬Έμž₯듀은 λ“€μ—¬μ“°κΈ°(indentation)λ˜μ–΄ μžˆλŠ”λ° μ΄λŠ” ν”„λ‘œκ·Έλž¨μ˜ ꡬ쑰λ₯Ό μ•ŒκΈ° μ‰½κ²Œ ν•˜κΈ° μœ„ν•΄ μ“΄ 것이며 λͺ‡μΉΈμ΄λƒλŠ” 상관없닀.

μˆ˜ν•™μ μœΌλ‘œ

  celsius = 5 * (fahr-32)/9;

와

  celsius = (5/9) * (fahr-32);

λŠ” κ°™μ§€λ§Œ Cμ—μ„œλŠ” μ •μˆ˜ν˜• λ°μ΄ν„°μ˜ 계산 κ²°κ³ΌλŠ” 무쑰건 μ •μˆ˜κ°€ λ˜μ–΄μ•Ό ν•˜λ―€λ‘œ 5/9κ°€ 0이 λ˜μ–΄λ²„λ € celsius의 값은 항상 0이 λ˜λ²„λ¦°λ‹€.

    printf("%d\t%d\n",fahr,celsius);

이 λ¬Έμž₯μ—μ„œλŠ” μΈμš©λΆ€ν˜Έ μ†μ—μ„œ 좜λ ₯양식을 μ§€μ •ν•΄μ€€λ‹€. %dλŠ” μ •μˆ˜ν˜• 좜λ ₯을 μ˜λ―Έν•˜κ³ , λ’€μ˜ λ§€κ°œλ³€μˆ˜λ‘œ λ“€μ–΄μ˜€λŠ” λ³€μˆ˜κ°€ μˆœμ„œλŒ€λ‘œ %d의 μžλ¦¬μ— λ“€μ–΄κ°€κ²Œ λœλ‹€.

REPL κΉŒμ§„ μ•„λ‹ˆμ–΄λ„ 온라인 컴파일러

Online C Compiler μ—¬κΈ°μ„œ μ—°μŠ΅ν•˜λŠ”κ²Œ 더 νŽΈν•˜λ‹€.

Last updated

Was this helpful?