이 영역을 누르면 첫 페이지로 이동
시간의화살 블로그의 첫 페이지로 이동

시간의화살

페이지 맨 위로 올라가기

시간의화살

행복하세요

[C] 입문

  • 2022.03.22 10:57
  • Programming Language/C

 

 

 

C는 자바와 달리 가비지 컬렉터가 없다. 

 

    int asdf;
    printf("%d\n", asdf);

 

자바에서 위와 같이 작성하면 asdf가 기본값인 0으로 초기화되겠지만, C에서는 쓰레기값이 출력된다.

 

 

 

 

C에서는 문자열 타입이 없고 char타입의 배열로 문자열을 사용한다.

 

    char asdf[] = "asdfasdf";
    printf("%s", asdf);

 

 

 

입력은 scanf()함수로 처리한다.

 

   int input;
    scanf("%d", &input);
    printf("%d", input);

 

printf와는 달리 변수 앞에 &를 붙여야 한다.

 

 

정수형 타입에는 네 가지가 있다.

 

  • short // 2byte
  • int // 4byte
  • long // 4byte
  • long long // 8byte

 

 

크기는 컴파일러마다 다를 수 있다.

또, 음수는 2의 보수법으로 저장하는데 정수형 타입 앞에 unsigned를 붙이면 0과 양수만을 표현할 수 있게 되며 표현할 수 있는 수가 두 배로 커진다. 

 

하드웨어는 int타입을 처리하는데 최적화되어있으니 저장공간을 절약해야 하는 경우 short를, 큰 범위의 수를 다룰 경우 long long, long을 사용하고 그 외는 int를 사용하자.

 

 

C에서는 boolean타입을 따로 정의하지 않고, int타입을 차용해서 표현했다. (0은 false 나머지는 true)

이 때문에 조건식을 작성할 때 주의해야한다. int타입을 boolean타입으로 사용하는 부분에 집중해서 while이나 for문을 작성하도록 하자.

 

 

C파일을 작성할 때는 메서드를 맨 위에 작성하고 메인메서드를 아래에 작성해야 호출할 수 있다.

이런 이유 때문에 코드의 자유로운 작성을 위해서 최상단에 프로토타입을 선언하고 아래부분에 자유롭게 메서드를 작성하는 방식으로 코딩하기도 한다.

 

 

프로그램을 작성할 때 함수로 공통되는 부분을 따로 빼서 작성하는 경우가 많은데, 이런 방법이 실행 시간을 더 단축시켜주지는 않는다. 오히려 더 오래 걸리게 만든다. 하지만 코드의 가독성과 편집을 위해 함수화해서 작성하는 편이 합리적이다.

 

 

 

 

 

 

 

반응형

'Programming Language > C' 카테고리의 다른 글

[C] 배열  (0) 2022.03.28
[C] 함수 간 소통 / 재귀  (0) 2022.03.22
[C] Register / Volatile  (0) 2022.03.22
[C] Scope  (0) 2022.03.22
[C] 스택 프레임  (0) 2022.03.22

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [C] 함수 간 소통 / 재귀

    [C] 함수 간 소통 / 재귀

    2022.03.22
  • [C] Register / Volatile

    [C] Register / Volatile

    2022.03.22
  • [C] Scope

    [C] Scope

    2022.03.22
  • [C] 스택 프레임

    [C] 스택 프레임

    2022.03.22
다른 글 더 둘러보기

정보

시간의화살 블로그의 첫 페이지로 이동

시간의화살

  • 시간의화살의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (607)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • Java (19)
      • JavaScript (15)
      • C (25)
      • C++ (12)
      • Python (1)
      • PHP (2)
    • Computer Science (69)
      • Operating System (18)
      • Computer Network (17)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Github Actions (0)
      • Amazon Web Service (8)
    • Machine Learning (28)
      • AI Introduction (28)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • Solutions (14)
    • Life Logs (0)
    • 낙서장 (25)

최근 글

나의 외부 링크

메뉴

  • 홈

정보

13months의 시간의화살

시간의화살

13months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © 13months.

티스토리툴바