[Warming up C Programming] chapter 2 : 프로그래밍의 기본 (2024)

제가 대학교 1학년 때 C언어 수업에서 배운 내용을 교재와 ppt를 중심으로 정리한 내용입니다. (2022.3 ~ 2022.6)
당시에 공부를 위해서 HWP 파일로 정리해 놓은 것을 그대로 올립니다.

대학에 처음 들어와 정리한 내용이라 모든 내용을 담고 싶은 욕심에 정리가 많이 지져분하고 어설픈점 양해 부탁드립니다..!!

🍑주석

: 프로그램에 대한 설명

  • 소스 코드에 대한 정보를 제공하거나 소스 코드의 일부분을 컴파일하지 않게 만들 수 있다.
    • 컴파일 하지 않게 만드는 것을 주석처리
    • 컴파일러에 의해서 무시
  • /* 로 시작 */로 끝
    • /* */ 끼리 중첩 불가.
      /* */ 안에 // 중첩가능.
  • //을 이용한 한줄 주석.
    • c99에서 추가된 기능.
    • 대부분의 컴파일러에서 사용 가능.
  • 코드 중간에 주석을 넣을 수 있다.
  • 구문별 색 지정기능 존재.

🍑main 함수

: c프로그램에 반드시 필요한 함수

함수

  • c프로그램은 main함수 또는 main함수와 여러함수로 구성.
  • 각각의 함수는 세미콜론으로 끝나는 문장으로 구성.
  • 여러 c문장들이 모여서 함수가 되고, 함수들이 모여서 c프로그램을 구성

진입점 함수(entry point)

: 프로그램이 시작될 때 호출되는 함수( c프로그램에서 main함수)

  • main함수가 없으면 링크 에러 발생.
  • 프로젝트에는 다양한 c파일이 존재 가능하지만, 코드 수행과 관련된 main함수는 단 하나만 있어야함.
  • c프로그램 실행 -> 운영체제가 실행파일을 메모리로 로드 -> main함수 호출.
  • 대소문자 구분하므로 MAIN은 안됨

종료 코드

: main함수의 리턴값(int형)

  • {}(블록) 안에 수행내용이 적히는데, 이 내용을 수행하다가 함수의 끝을 만나거나 return문을 만나면 리턴
  • main함수에서만 return 생략 가능. 리턴형이 void가 아닌 함수에는 반드시 return문이 필요
  • 리턴시에는 실행의 흐름이 운영체제로 돌아가면서(리턴값이 운영체제로 돌아가며) 프로그램 종료.
  • 프로그램의 종료 코드가 0이면 정상종료, 비정상 종료는 0이 아닌값을 리턴
    • 정상 종료 : 프로그램이 끝까지 잘 수행되고 끝났다는 의미
    • 비정상 종료 : 파일을 열수 없거나, 메모리를 할당할 수 없어서 프로그램이 제대로 수행되지 못하고 종료.

🍑입출력

  • 프로그램은 블랙박스 모델

콘솔프로그램

: 콘솔(명령프롬프트)에서 실행되는 프로그램

  • 키보드로부터 입력(표준 입력)을 받아서 처리한 다음, 결과를 콘솔에 텍스트로 출력(표준 출력).

입출력 라이브러리

: c프로그램 마다 공통적으로 필요한 입력과 출력 기능 제공.

  • c프로그램에서 라이브러리를 사용하려면 라이브러리가 제공하는 함수에 대한 정보가 필요.

  • 헤더파일(.h) : 라이브러리 함수에 대한 정보(함수명, 리턴명, 매개변수)를 제공하는 파일.

    • 라이브러리를 사용하려면 헤더파일을 #include로 포함 시켜야 하는데, 포함시키면 전처리기가 컴파일 전에 헤더 파일의 내용을 소스 파일로 복사해서 라이브러리 함수에 대한 정보를 제공.

    • 헤더파일을 포함하지 않고 print 함수를 호출하면
      컴파일 경고(= 함수가 정의되지 않았으므로 int를 리턴하는 함수로 가정함) 와
      링크 에러(= printf 함수가 출력 되었으나 오브젝트 코드를 찾을 수 없음) 발생.

    • 컴파일 경고 : 컴파일은 되지만 문제가 생길 수 있는 부분을 확인하도록 경고하는 것.

      • 발생하더라도 오브젝트 코드나 실행 파일이 생성.
      • 그렇지만 무시 후 실행 시 프로그램 오작동 가능성이 있으므로 사라지도록 하는 것이 좋음.

콘솔출력

: c프로그램에서 콘솔에 텍스트 출력을 위해서 printf 함수를 이용.
이때 출력할 내용을 “” 로 묶어서 printf 함수의 () 안에 써준다.

  • 문자열 : “” 안에 묶인 항목
  • 줄바꿈 문자(\n) : 이전 출력의 마지막 커서 위치부터 연속해서 출력하기 때문에 커서를 출력 후에 다음줄로 이동하려면 문자열 안에 줄바꿈 문자를 함께 출력해야함

🍑변수

: 값을 저장하기 위한 공간

  • c에서 입력을 처리시 입력받은 값을 저장하기 위한 변수 필요.

  • 변수 사용을 위해서 필수적으로 변수 이름과 데이터형을 정해야 한다.

    • 메모리 공간에 대해서 직접 메모리 주소를 사용하는 대신 변수를 이용해 메모리 공간에 이름을 붙여두고 이름으로 접근하는 방법을 제공.
  • 컴퓨터 시스템에서는 값을 저장하기 위해서 메모리를 사용.

    • 메모리는 한바이트 단위로 값 저장가능.
    • 각 메모리의 바이트를 구분하기 위한 주소 사용.

데이터형

: 프로그램에서 사용되는 데이터의 종류

  • 데이터형에 따라 필요한 메모리 공간의 크기와 메모리에 저장된 값의 의미가 결정
    • 문자형(char 1바이트), 정수형(int 4바이트), 실수형(float 4바이트), 배열, 포인터, 구조체 등
  • 선언
    • 변수는 선언 후 사용해야 한다.
    • 변수의 선언문은 컴파일러에게 변수의 이름과 데이터형을 미리 알려주고 변수를 사용할 수 있도록 준비시킨다.
  • 이름
    • 영문자, 숫자, 밑줄기호를 이용해서 만들 수 있음.
    • 첫글자로는 반드시 영문자나 밑줄 기호.
    • 변수 이름 중간에 빈칸을 사용하거나 다른 기호를 사용해서는 안됨.
    • 변수에 값을 저장하거나 메모리에 저장된 변수의 값을 읽어올 때도 변수이름을 사용.
  • 사용(대입) : 변수에 값을 저장하는 것
    • 변수에 값을 저장하려면 변수 이름 다음에 =을 쓰고 값을 적어준다. - 변수의 데이터형과 같은 형식의 값을 대입해야 한다.

🍑print 함수

  • 문자열을 출력하는 기능

  • 값을 서식에 맞춰 출력하는 기능

형식문자열 = 서식지정자 = 형식지정자

: printf 함수의 첫 번째 인자로 “”안에 %와 약속된 문자로 서식 지정.

  • 서식 지정자 여러개 사용가능
    • 서식 지정자와 출력값의 개수가 일치해야함.
    • 서식 지정자와 출력 값은 순서대로 대응된다.
  • 서식 지정자의 종류
    %d : 정수를 10진수로 출력 (int)
    %x (0x -> #사용해서 출력) : 정수를 16진수로 출력 (int)
    %X : 정수를 16진수로 출력 (int) -> a ~ f 대신 A ~ F를 출력.
    %f, %F : 실수를 부동소수점 표기 방식으로 출력 (float)
    %e, %E : 실수를 지수 표기 방식으로 출력 (float)
    %c : 문자 출력 (char)
  • 8진수 : 0~7을 이용해서 숫자를 표현
    • %o (0 -> #사용해서 출력)
  • 10진수 : 0 ~ 9를 이용해서 숫자를 표현
  • 16진수 : 0 ~ 9 a ~ f를 이용해서 숫자를 표현

문자폭과 정밀도

1. 문자폭

  • 문자폭을 지정하려면 %와 영문사이에 정수로 폭을 써준다.
  • 왼쪽으로 정렬 출력하려면 문자폭 앞에 -, 오른쪽으로 정렬 출력하려면 아무것도 안붙임.

2. 정밀도 : 소수점 이하 자릿수

  • printf함수는 실수 출력시 디폴트로 소수점 이하 6자리를 출력.
  • 정밀도를 지정하려면 %와 영문 사이에 .과 정수로 지정해준다.

🍑scanf 함수

  • 콘솔에서 키보드로 입력한 값을 변수로 읽어온다.
    • 할당 or 저장이라고 표현함
  • scanf 함수를 호출시 형식 문자열(=서식 문자열)과 변수 이름을 지정.
  • 변수이름 앞에서 &를 써주어야 함.
    • & : ~에 라는 뜻

scanf의 서식지정자

: 변수에 입력 받을 값의 형식을 알려주기 위해서 사용

%d : 콘솔 입력을 10진수로 처리 (int)
%x : 콘솔 입력을 16진수로 처리 (int)
%i : 정수를 10진수, 8진수, 16진수로 입력
ex) 12 012 0x12로 입력시 자동으로 처리 (int)
%f : float형 실수 입력
%lf : double형 실수 입력 (long float의 약자)
%c : 문자 1개 입력 (char)

scanf함수의 안전성 문제

  • scanf_s 사용을 권고하지만, 의도적으로 scanf를 사용할 때 ANSI C를 기준으로 c프로그램을 작성하는 경우 컴파일 에러가 발생하지 않도록 처리 필요.
  • #define _CRT_SECURE_NO_WARNING
    #pragma warning(disable:4996)
    #pragma warning(disable:6031)
  • % 사이 꼭 한칸 띄고 작성
  • 여러개의 값 입력 받기
    • 형식문자열 안에 서식지정자를 여러개 지정.
    • 서식지정자와 입력받을 변수는 순서대로 대응되고, 서로 개수가 일치해야함.
    • 서식지정자 사이에 빈칸을 써주면 공백문자(빈칸, 탭, 줄바꿈 등)를 모두 무시하고 입력을 읽어온다. (콘솔에서 입력할 때)
[Warming up C Programming] chapter 2 : 프로그래밍의 기본 (2024)

References

Top Articles
Drei-Sterne-Koch Juan Amador: Lomo vom Iberico-Schwein auf Holzkohle gegart, mit Carrillera, Aprikosen, Pfifferlingen & Nougat - genießen und reisen
Amador Sheriff’s Office Arrest & Call Logs: February 22 to March 1, 2022
Hometown Pizza Sheridan Menu
Dunhams Treestands
Www.fresno.courts.ca.gov
Chase Bank Operating Hours
St Als Elm Clinic
Top Golf 3000 Clubs
Tiraj Bòlèt Florida Soir
ATV Blue Book - Values & Used Prices
Wnem Radar
Craigslist Alabama Montgomery
Housework 2 Jab
Springfield Mo Craiglist
Csi Tv Series Wiki
Labby Memorial Funeral Homes Leesville Obituaries
We Discovered the Best Snow Cone Makers for Carnival-Worthy Desserts
Cvs El Salido
Weather Underground Durham
Rugged Gentleman Barber Shop Martinsburg Wv
Dtlr On 87Th Cottage Grove
Warn Notice Va
Brenda Song Wikifeet
Ravens 24X7 Forum
Mega Millions Lottery - Winning Numbers & Results
Garrison Blacksmith's Bench
How does paysafecard work? The only guide you need
Wow Quest Encroaching Heat
Compress PDF - quick, online, free
Reborn Rich Ep 12 Eng Sub
Domina Scarlett Ct
Tds Wifi Outage
Bella Thorne Bikini Uncensored
Evil Dead Rise (2023) | Film, Trailer, Kritik
Bianca Belair: Age, Husband, Height & More To Know
This 85-year-old mom co-signed her daughter's student loan years ago. Now she fears the lender may take her house
Fool's Paradise Showtimes Near Roxy Stadium 14
Nami Op.gg
Dickdrainersx Jessica Marie
Juiced Banned Ad
Silicone Spray Advance Auto
Gli italiani buttano sempre più cibo, quasi 7 etti a settimana (a testa)
Tom Kha Gai Soup Near Me
Hawkview Retreat Pa Cost
Paperlessemployee/Dollartree
Jane Powell, MGM musical star of 'Seven Brides for Seven Brothers,' 'Royal Wedding,' dead at 92
Theatervoorstellingen in Nieuwegein, het complete aanbod.
Oefenpakket & Hoorcolleges Diagnostiek | WorldSupporter
Kushfly Promo Code
Lightfoot 247
Morbid Ash And Annie Drew
683 Job Calls
Latest Posts
Article information

Author: Lakeisha Bayer VM

Last Updated:

Views: 6003

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Lakeisha Bayer VM

Birthday: 1997-10-17

Address: Suite 835 34136 Adrian Mountains, Floydton, UT 81036

Phone: +3571527672278

Job: Manufacturing Agent

Hobby: Skimboarding, Photography, Roller skating, Knife making, Paintball, Embroidery, Gunsmithing

Introduction: My name is Lakeisha Bayer VM, I am a brainy, kind, enchanting, healthy, lovely, clean, witty person who loves writing and wants to share my knowledge and understanding with you.