C언어01_시작하기

2 minute read

이 글은 아래의 페이지를 공부하며 작성한 글 입니다.
https://dojang.io/mod/page/view.php?id=9



C언어의 특징

  • C언어의 구성은 모든 실행들이 함수를 호출하고 return 형식으로 구성되어 있다.
  • 함수들의 집합체이다.
  • 문장이 간결하다.
  • 대,소문자 구분된다.
  • 예약어는 기본적으로 소문자이다.
  • 메모리의 주소를 자유롭게 조작할 수 있다.
  • 주기억장치의 주소까지 조작할 수 있는 연산자를 가지고 있다. - 포인터
  • main함수부터 실행되며, main함수가 없으면 컴파일이 되지 않는다.
  • .c 확장자를 지닌 소스파일은 .obj를 거쳐 .exe파일로 생성된다.




Hello World! 출력하기


#include <stdio.h>

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

  • #include : 헤더파일을 포함하는 문법.
    • printf를 사용하려면 stdio.h 헤더파일이 필요하다.




서식지정자


#include <stdio.h>

int main()
{
    printf("%s\n", "Hello, world!");
    printf("%s %s\n", "Hello", "1234"); // Hello 1234
    printf("%s %s\n", "Hello,", "1234"); // Hello, 1234
    printf("%s, %s\n", "Hello", "1234"); // Hello, 1234
    printf("%s, %s\n", "Hello,", "1234"); // Hello,, 1234
    printf("%s%s\n", "Hello", "1234"); // Hello1234
    
    return 0;
}

  • 그냥 출력하는 것과는 결과에 차이가 없으나 변수를 사용하여 같은 내용을 여러개 출력하거나, 출력 형태를 바꿀 때 유용하다.
  • %s : 문자열(string)의 약어로, s를 사용
  • %d : 정수




중괄호{ }

  • 코드의 범위를 나타냄.
  • if, for등의 키워드가 영향을 미치는 영역을 정할 때도 사용
  • struct(구조체,공용체, 열거형)를 정의할 때도 사용.




들여쓰기

  • 안해도 컴파일 에러는 발생하지 않지만, 코드의 가독성을 높이기 위해 사용.




변수만들기

변수 명명규칙

  • 영문, 숫자를 사용할 수 있다.
  • 대소문자를 구분
  • 문자부터 시작해야한다.
  • _(밑줄문자)로 시작할 수 있다.
  • 키워드는 사용할 수 없다.




정수

  • char, int가 있고 부호키워드(signed, unsigned)와 크기(long, short)를 붙여 특성 정의
    • signed : 부호있는 정수 ( 생략 )
    • unsigned : 부호없는 정수 0부터 시작

정수형 변수 선언

1. 부호없는 자료형


#include <stdio.h>

int main()
{
    char num1 = -10;           // 1바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    short num2 = 30000;        // 2바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    int num3 = -1234567890;    // 4바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    long num4 = 1234567890;    // 4바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    long long num5 = -1234567890123456789;     // 8바이트 부호 있는 정수형으로 변수를 
                                               // 선언하고 값 할당

    // char, short, int는 %d로 출력하고 long은 %ld, long long은 %lld로 출력
    printf("%d %d %d %ld %lld\n", num1, num2, num3, num4, num5);
    // -10 30000 -1234567890 1234567890 -1234567890123456789

    return 0;
}

  • %d : 10진수 (decimal)
  • %ld : long decimal
  • %lld : long long decimal


2. 부호있는 자료형


#include <stdio.h>

int main()
{
    unsigned char num1 = 200;                          // 1바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned short num2 = 60000;                       // 2바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned int num3 = 4123456789;                    // 4바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned long num4 = 4123456789;                   // 4바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned long long num5 = 12345678901234567890;    // 8바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    // unsigned char, unsigned short, unsigned int는 %u로 출력하고 
    // unsigned long은 %lu, unsigned long long은 %llu로 출력
    printf("%u %u %u %lu %llu\n", num1, num2, num3, num4, num5);
    // 200 60000 4123456789 4123456789 12345678901234567890

    return 0;
}

  • %u : 부호없는 10진수(unsigned decimal)
  • %lu : long unsigned decimal
  • %llu : long long unsigned decimal