본문 바로가기
들은 강의

[혼자 공부하는 C언어] - 1~3 (컴파일러, 데이터 출력, 상수, 데이터 표현, 변수, 데이터 입력)

by hotdog7778 2023. 6. 6.

공부 기록

강의명 : 혼자 공부하는 C 언어 저자에게 배우는 C 언어의 모든 것

해당 강의는 인프런에서 무료로 수강 할 수 있습니다.

 

수강 시작 ~ 끝

2023. 05. 10 ~ 2023. 05. 24


기록을 남기는 것의 중요성을 깨달아

해당 강의를 듣고 대강 적어놨던 내용들을

블로그에 한번 더 정리 합니다.

 

 

1.1 - 프로그래밍과 C언어

학습 내용

  • 탄생 배경과 특징
  • 표준화
  • 실습환경

요약

  • 프로래밍의 기본 절차 : 저장공간 확보 → 입력 → 처리 → 출력
  • C의 특징 : C는 이식성, 함수 사용, 시스템 프로그래밍 가능
  • 표준화 과정 : K&R C → ANSI C(1989) → C99(1999) → C11(2011)

강의 내용

프로그램이란 일의 순서다.

 

1.2 - 컴파일러 사용법

학습 내용

  • 소스 파일
  • 컴파일
  • 실행

요약

  • 프로그램 작성 순서 : 소스파일 작성 → 컴파일 → 실행
  • 소스파일 : 아스키 코드(ASCII code)에 따라 저장된 파일
  • 실행파일 : 컴퓨터가 이해할 수 있는 기계어 형태의 파일
  • VC++ 컴파일러 사용법 : 프로젝트 생성 → 소스파일 추가 → 빌드 → 실행

강의 내용

우리가 문자를 사용해서 만든 소스코드는 사실상 컴퓨터 내에 저장될 때는 비트의 상태로 저장된다.

우리가 만드는 소스코드는 컴퓨터에는 ASCII 코드 값으로 저장되어 있음.

소스코드는 이렇게 ASCII코드값으로 저장되도록 하되,

이런 ASCII코드값을 실제로 CPU가 이해할 수 있는 명령어 형식으로 바꿔준다. = 컴파일

 

2.1 - C프로그램의 기본 형태와 데이터 출력 방법

학습 내용

  • main 함수의 구조
  • printf 함수로 문자열 출력
  • 제어문자, 정수, 실수 출력

요약

  • 프로그램의 기본 형태 :
    • main 함수는 머리 + 몸체
    • 몸체 안에 내용은 들여 쓰기
    • 문장의 끝은 세미콜론을 표시
    • 소스코드를 설명하는 주석문은 // 와 /* */ 를 사용
  • printf함수로 화면 출력
    • 기본은 문자열 출력
    • 제어 문자 출력(’\n’, ‘\r’, ‘\t’, ‘\b’, ‘\a’ 등)
    • 정수는 %d, 실수는 %lf로 출력

강의 내용

한줄주석 = /

여러줄 주석 =

/*
주석예시
주석예시
*/

 

2.2 - 상수와 데이터 표현 방법

학습 내용

  • 정수 표현
  • 실수 표현
  • 문자와 문자열 상수 표현
  • 컴파일 된 후의 비트 형태

요약

  • 상수 - 프로그램 실행 중에 바뀌지 않는 값
    • 정수 표현 - 12(10진수), 014(8진수), 0xc(16진수)
    • 실수 표현 - 0.0000314(소수점 표기), 3.14e-5(지수 표기)
    • 문자와 문자열 표현 - ‘A’(문자), “A”(문자열)
  • 정수가 컴파일 되면
    • 양수 → 4바이트 2진수, 음수 → 4바이트 2의 보수
  • 실수가 컴파일 되면
    • 실수 → IEEE 754 표준
  • 실수는 오차가 있다!

강의 내용

문자 상수 ‘ ‘

문자열 상수 “ “

 

3.1 - 변수

학습 내용

  • 변수 선언 방법
  • 쓰레기값과 초기화
  • 정수를 저장하는 자료형
  • unsigned 정수 자료형
  • 실수 자료형
  • 문자열 저장
  • const를 사용한 변수
  • 예약어와 식별자

요약

  • 변수선언 : 자료형 + 변수명 예) int a;
  • 대입 연산 : 변수에 값 저장
  • 정수형 자료형 : char, short, int, long, long long
  • 양수 전용 자료형 : unsigned 사용, 예) unsigned int ua;
  • 실수형 자료형 : float, double, long double
  • 문자열 저장 : char 배열
  • const를 사용한 변수 → 변수의 상수화
  • 식별자 : 필요에 따라 만들어 쓰는 단어

강의 내용

메모리의 저장공간 확보를 위해서는 변수 선언을 해야한다.

메모리 할당된 경우 메모리에 쓰레기 값이 있음.

의미있는 값을 넣어주면 됨. 이과정을 초기화 라고 한다.

정수를 저장하는 자료형들

  • int /4바이트
  • short /2
  • long /4
  • long long /8
  • char /1

문자출력 %c

숫자출력 %d

실수를 저장하는 자료형

  • float /4바이트 printf(%f
  • double 8 printf(%lf
  • long double 컴파일러마다 다름 8 10 12 16 printf(%Lf

 

3.2 - 데이터 입력

학습 내용

  • scanf 함수의 사용법
  • scanf 함수의 응용
  • 문자와 문자열의 입력

요약

  • scanf 함수로 데이터 입력 : 변수 앞에 &를 붙인다!
  • 자료형에 따른 변환문자 사용
    • 정수 : short(%hd), int(%d), long(%ld), long long(%lld)
    • 실수 : float(%f), dluble(%lf), long double(%Lf)
    • 문자와 문자열 : char(%c), char 배열(%s)
  • 여러 개의 변수 동시 입력 : scanf(”%d %lf”, &a, &b);
  • 문자열 입력할 때 변수 앞에 &를 붙이지 않는다!

강의 내용

//scanf 함수에 대해
#include <stdio.h>

int main(void)
{
    int a;
    scanf("%d",&/*주소연산자*/a);
    printf("%d\\n",a);
}
//scanf 함수에 대해
#include <stdio.h>
int main(void)
{
    int age;
    double height; //scanf 할때 %lf 사용

    //나이를 물어본후 나이를 입력하도록 
    printf("what age:");
    scanf("%d",&age);

    //키를 물어본후 키를 입력하도록
    printf("what height:");
    scanf("%lf",&height);

    //
    printf("your age is %d, your height is %lf\\n",age,height);
}

int main(void)
{
    int age;
    double height; //scanf 할때 %lf 사용

    //나이와 키를  물어본후 나이와 키를 입력하도록 
    printf("age and height:");
    scanf("%d%lf",&age,&height); // 나이와 키를 입력할때 스페이스,탭,엔터키를 사용해 데이터를 구분한다. 구분문자.

    printf("your age is %d, your height is %lf\\n",age,height);
}
//scanf 함수에 대해
#include <stdio.h>

//문자
int main(void)
{
    char grade; //학점이라 A,B,C 같이 문자임.

    printf("학점:");
    scanf("%c",&grade);

    printf("%c\\n",grade);
}

//문자열
int main(void)
{
    char name[20];

    printf("이름:");
    scanf("%s",name);  
    /*
    char형에 scanf쓸때 &안씀에 주의, 
    이름을 입력할때 구분문자 사용시 입력을 종료함 예를들어 이름 띄어쓰기
    char 배열이라 %s
    */
    printf("%s\\n",name); 
}