본문 바로가기
펌웨어

C언어 기본문법을 정리하여 알아보자!!

by CodeMuscle 2024. 2. 15.
반응형

※ 글을 복사해서 쓰고싶으면

제가 쓴 꿀팁글 중 '복사안되는블로그 이제는 할 수 있읍니다.'

 

글을 참고하시면 복사해서 쓸 수 있읍니다.

 

C 언어는 프로그래밍을 배우는 사람들에게 가장 기본이 되는 프로그래밍 언어 중 하나입니다.

간결하면서도 강력하며, 다양한 컴퓨팅 환경에서 널리 사용됩니다. 

이 문서에서는 C 언어의 기본 문법에 대해 자세하고 깔끔하게 설명하겠읍니다.(저도 어렵읍니다...)

 

(참고로 저는 중학교수준의 머리로 2년 공부 후 개발자로 취업하였읍니다..

저같은 바보도 하고있읍니다.)

 

 

목차

  • 데이터 타입
  • 변수와 상수
  • 연산자
  • 제어 구조
  • 함수
  • 배열
  • 포인터
  • 구조체

 

 

1. 데이터 타입

C 언어에서는 여러 종류의 데이터를 다룰 수 있는 다양한 데이터 타입이 제공됩니다. 주요한 데이터 타입은 다음과 같읍니다:

 

- int: 정수형 데이터를 표현합니다.
    * 예시: int score = 90;
- float, double: 부동 소수점 숫자를 표현합니다.
    * 예시: float pi = 3.14;
    * 예시: double distance = 15.78;
- char: 문자를 표현합니다.
    * 예시: char grade = 'A';
- void: 값이 없음을 나타내는 데이터 타입입니다.
    * 예시: void printMessage() { printf("Hello, World!"); }

이외에도 다양한 데이터 타입이 있으며, 필요에 따라 사용됩니다.

 

2. 변수와 상수

변수는 데이터를 저장하기 위한 메모리 공간을 나타내며, 상수는 값을 변경할 없는 변수를 의미합니다. 변수와 상수를 선언할 때는 다음과 같이 사용합니다:

 

a.

int x; // 변수 x를 선언
const int y = 10; // 상수 y를 선언하고 초기화

 

b.

#include <stdio.h>

int main() {
    // 정수형 변수 생성
    int age = 25;

    // 부동 소수점 변수 생성
    float height = 175.5;

    // 변수 값 출력
    printf("나의 나이는 %d살이고, 키는 %.1fcm입니다.\n", age, height);

    return 0;
}

 

3. 연산자

C 언어에서는 다양한 종류의 연산자를 사용하여 수학적 논리적 연산을 수행할 있읍니다. 주요 연산자에는 산술 연산자, 할당 연산자, 비교 연산자, 논리 연산자 등이 있읍니다.

int a = 5;
int b = 3;
int c;

c = a + b; // 덧셈 연산
c = a - b; // 뺄셈 연산
c = a * b; // 곱셈 연산
c = a / b; // 나눗셈 연산

 

 

 

4. 제어 구조

C 언어에서는 프로그램의 흐름을 제어하기 위해 다양한 제어 구조를 제공합니다. 주요한 제어 구조에는 조건문(if, switch) 반복문(for, while, do-while) 있읍니다.

 

 

if문 즉 만약에~~~로 시작하는거죠.

생각해보면 우리들이 어딘가로 밥을 먹으러간다고 합시다.

라멘집을가기로했는데 라멘집 문이 닫혀있을 수 있다고 생각하자구요! 

그럼 ? 

if (만약에) {라멘집이 열었으면? 라멘집가자!!}

else(그밖에){아니면 초밥집가지모}

이런식으로 끝없이 형성되어있다고 생각하시면 됩니다.

 

반복문은 복잡하게 생각할거없이 10번 똑같은 작업을 반복해야하는데 노가다? 하기 싫잖아유..

그래서 반복문으로 처리하는거라고 생각하자구요!

 

 

if문과  while 반복문의 예제입니다.

 

#include <stdio.h>

int main() {
    // 조건문 예제
    int num = 10;

    if (num > 0) {
        printf("양수입니다.\n");
    } else if (num < 0) {
        printf("음수입니다.\n");
    } else {
        printf("0입니다.\n");
    }

    // 반복문 예제 (for 문)
    int sum = 0;

    for (int i = 1; i <= 10; i++) {
        sum += i; // 1부터 10까지의 숫자를 더함
    }

    printf("1부터 10까지의 합: %d\n", sum);

    // 반복문 예제 (while 문)
    sum = 0;
    int i = 1;

    while (i <= 10) {
        sum += i; // 1부터 10까지의 숫자를 더함
        i++;
    }

    printf("1부터 10까지의 합: %d\n", sum);

    // 반복문 예제 (do-while 문)
    sum = 0;
    i = 1;

    do {
        sum += i; // 1부터 10까지의 숫자를 더함
        i++;
    } while (i <= 10);

    printf("1부터 10까지의 합: %d\n", sum);

    return 0;
}

 

5. 함수

C 언어에서 함수는 프로그램의 특정 기능을 수행하는 블록을 나타냅니다. 함수를 정의할 때는 반환 값의 데이터 타입, 함수의 이름, 매개 변수 목록, 함수 내부의 실행 코드 등을 포함해야 합니다.

 

int add(int a, int b) {
    return a + b;
}

 

6. 배열

배열은 동일한 데이터 타입의 여러 값을 저장하기 위한 데이터 구조입니다. 배열을 사용하여 하나의 변수에 여러 값을 저장할 있읍니다.

 

배열 Example

#include <stdio.h>

int main() {
    // 성적을 저장하는 배열 선언
    int scores[] = {85, 90, 75, 95, 80};
    int num_students = 5; // 학생 수
    int sum = 0;

    // 배열을 순회하면서 성적의 총합을 계산
    for (int i = 0; i < num_students; i++) {
        sum += scores[i];
    }

    // 성적의 평균 계산 및 출력
    double average = (double)sum / num_students;
    printf("성적 평균: %.2f\n", average);

    return 0;
}

 

#include <stdio.h>

int main() {
    // 문자열을 저장하는 배열 선언
    char message[] = "Hello, world!";

    // 배열 순회하면서 문자 출력
    for (int i = 0; message[i] != '\0'; i++) {
        printf("%c", message[i]);
    }
    printf("\n");

    return 0;
}

 

 

 

7. 포인터

포인터는 메모리 주소를 저장하는 변수입니다. 포인터를 사용하여 메모리 주소에 직접 접근할 있읍니다.

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr = &num; // 포인터 ptr에 변수 num의 주소를 할당

    // 포인터를 통해 변수의 값 변경
    *ptr = 20;

    printf("변수 num의 값: %d\n", num); // 변경된 값 출력

    return 0;
}

 

8. 구조체

구조체는 서로 다른 데이터 타입의 여러 변수를 하나의 묶음으로 관리하기 위한 데이터 타입입니다. 구조체를 사용하여 복잡한 데이터를 효율적으로 관리할 있읍니다.

#include <stdio.h>

// 학생 정보를 저장하는 구조체 정의
struct Student {
    int id;          // 학번
    char name[20];   // 이름
    double gpa;      // 학점 평균
};

int main() {
    // 구조체 배열 선언과 초기화
    struct Student students[3] = {
        {20230001, "John", 3.5},
        {20230002, "Alice", 3.8},
        {20230003, "Bob", 3.2}
    };

    // 모든 학생 정보 출력
    for (int i = 0; i < 3; i++) {
        printf("학번: %d\n", students[i].id);
        printf("이름: %s\n", students[i].name);
        printf("학점 평균: %.2f\n", students[i].gpa);
        printf("\n");
    }

    return 0;
}

 

여기까지 기본문법들을 알아봤읍니다. 

 

반응형