C Programming Language

m_ngyeong·2024년 7월 26일
0

C

목록 보기
1/16
post-thumbnail

C Language


1. Basic Structure

C 프로그램은 함수로 구성되며, main함수는 프로그램의 시작점을 의미한다.

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}
  • #include <stdio.h>: 표준 입출력 라이브러리를 포함
  • int main(): main 함수는 프로그램의 시작점
  • printf("Hello, World!\n");: 화면에 "Hello, World!"를 출력
  • return 0;: 프로그램을 성공적으로 종료

2. Variable and Data type

변수(variable)는 데이터를 입력 받으려면, 입력 받고자하는 데이터의 타입에 해당하는 크기의 메모리를 우선 할당받아야 한다. 이처럼 데이터를 저장하기 위해 할당받은 메모리 공간을 변수(variable)라고 한다.

int a = 10;          // 정수형 변수
float b = 5.5;       // 실수형 변수
char c = 'A';        // 문자형 변수
double d = 10.99;    // 더 큰 범위의 실수형 변수

String(문자열)

문자열(String)은 문자들의 집합이다.(A는 문자이지만, ABC는 문자열이다.)
C 언어에서는 문자열 자료형을 따로 제공하지 않고, 문자(char)의 배열로 표현된다.
*char은 하나의 문자만을 표현.

문자열 초기화

char str_1 [6] = {'H', 'e', 'l', 'l', 'o', '\0'};
char str_2 [6] = "Hello";
char str_3 [] = "Hello";

C 언어의 문자열은 \0(Null 문자)로 끝나는 문자 배열로 처리된다. 즉, \0(Null 문자)를 통해 문자열의 마지막을 알린다.

  • str_1 : 각 메모리 공간 하나 하나를 지정하고 있기에, 반드시 마지막에 null을 넣어줘야함.
  • str_2 & str_3 : 문자열 상수로 초기화되어 자동으로 null을 포함함.

3. Input/Output

입력과 출력을 위해 scanfprintf 함수를 사용한다.

#include <stdio.h>

int main() {
    int num;         
    int *p = &num;   // 포인터 p가 num의 주소를 가리키도록 설정

    printf("Enter a number: ");  
    scanf("%d", &num);           // 입력한 숫자를 num에 저장
    // scanf("%d", p); 포인터를 사용하여 입력한 숫자를 num에 저장

    printf("You entered: %d\n", *p);  // 포인터를 사용하여 num의 값을 출력

    return 0;
}

코드 설명

  1. 헤더 파일 포함 :
    #include <stdio.h> - 표준 입출력 라이브러리를 포함.

  2. 변수 및 포인터 선언 :

  • int num; - 정수형 변수 num을 선언.
  • int *p = &num; - 포인터 p를 선언하고 num의 주소를 p에 저장.
  1. 입력 받기 :
  • printf("Enter a number: "); - 사용자에게 숫자를 입력하라는 메시지를 출력.
  • scanf("%d", &num); - 사용자가 입력한 숫자를 num에 저장하고, &num은 num의 주소를 의미.
  1. 출력하기 :
  • printf("You entered: %d\n", *p); - 포인터 p를 역참조(dereference)하여 num의 값을 출력하며, *p는 num의 값을 의미.
  1. 프로그램 종료 :
  • return 0; - 프로그램을 성공적으로 종료
  • 포인터 사용: 포인터 p는 num의 주소를 가리키며, *p를 통해 num의 값에 접근할 수 있다.
  • 입출력 함수: scanf는 사용자로부터 입력을 받아 변수를 초기화하며, printf는 변수의 값을 출력한다.

scanf() :

C언어의 표준 입력 함수로, 사용자로부터 다양한 데이터를 다양한 서식에 맞춰 입력받을 수 있게 해준다. scanf()함수에 포함된 &기호는 주소 연산자(&)라고 하며, 이 주소 연산자는 입력받은 데이터를 뒤에 나오는 변수에 저장하라는 의미이다.

4. Conditional statement(조건문)

조건문은 if, else if, else 문을 사용하여 작성한다.

#include <stdio.h>

int main() {
    int num = 10;
    if (num > 0) {
        printf("Positive number\n");
    } else if (num < 0) {
        printf("Negative number\n");
    } else {
        printf("Zero\n");
    }
    return 0;
}

5. Iterative statement(반복문)

반복문은 for, while, do while 문을 사용하여 작성한다.

#include <stdio.h>

int main() {
    // for 문 예제
    for (int i = 0; i < 5; i++) {
        printf("for loop: %d\n", i);
    }

    // while 문 예제
    int j = 0;
    while (j < 5) {
        printf("while loop: %d\n", j);
        j++;
    }

    // do while 문 예제
    int k = 0;
    do {
        printf("do while loop: %d\n", k);
        k++;
    } while (k < 5);

    return 0;
}

출력 결과 : 세 가지 반복문 모두 0부터 4까지의 값을 출력한다. 각 반복문은 조건이 다르지만, 결과는 동일하다.

for 문 예제

for (int i = 0; i < 5; i++) {
    printf("for loop: %d\n", i);
}

i를 0부터 시작하여 5보다 작은 동안 반복한다. 매 반복마다 i의 값을 출력하고 i를 1씩 증가시킨다.

while 문 예제 :

int j = 0;
while (j < 5) {
    printf("while loop: %d\n", j);
    j++;
}

j를 0으로 초기화하고, j가 5보다 작은 동안 반복한다. 매 반복마다 j의 값을 출력하고 j를 1씩 증가시킨다.

do while 문 예제 :

int k = 0;
do {
    printf("do while loop: %d\n", k);
    k++;
} while (k < 5);

k를 0으로 초기화하고, 최소한 한 번은 실행한 후 k가 5보다 작은 동안 반복한다. 매 반복마다 k의 값을 출력하고 k를 1씩 증가시킨다.

6. Array(배열)

배열은 동일한 자료형의 데이터 집합을 저장할 수 있다.

#include <stdio.h>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        printf("arr[%d] = %d\n", i, arr[i]);
    }
    return 0;
}

출력 결과 :

arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5

7. Function(함수)

함수는 특정 작업을 수행하는 코드 블록이며, C 언어에는 main()함수, 라이브러리 함수, 사용자 정의 함수가 있다.

  • 함수의 반환형은 int, char, double 등 모든 자료형이 가능하며, 특별한 반환형이 없는 경우 void를 사용.
  • main()함수는 반환형, 이름, 매개변수, 함수의 내용, 반환값으로 구성됨.

#include <stdio.h>

// 함수 선언
int add(int a, int b);

int main() {
    int sum = add(5, 3);
    printf("Sum: %d\n", sum);
    return 0;
}

// 함수 정의
int add(int a, int b) {
    return a + b;
}
  • 함수 선언: int add(int a, int b);
  • 함수 정의: int add(int a, int b) { return a + b; }


profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글