Skip to main content

Command Palette

Search for a command to run...

Understanding C Language: Basic Structure (1/2)

Updated
14 min read
Understanding C Language: Basic Structure (1/2)

Comments, variables, functions, sentences, Output function, input function, arithmetic operation, assignment operation


Contents

1️⃣주석 (Comment)
2️⃣전처리(Preprocessor)
3️⃣함수 (Function)
4️⃣변수 (Variable)


일반적인 프로그램 형태(General structure of a program)

일반적인 프로그램의 형태는 다음과 같다.

  • 입력 단계(Input): 데이터를 입력받는 단계이다. 예를 들어, 사용자로부터 키보드 입력을 받거나 파일에서 데이터를 읽는 과정이다.

  • 처리 단계(Process): 입력된 데이터를 처리하는 단계이다. 이 단계에서는 산술 연산, 데이터 변환, 조건 처리 등의 논리적 연산이 수행된다.

  • 출력 단계(Output): 처리된 결과를 화면이나 파일에 출력하는 단계이다. 예를 들어, printf() 함수로 결과를 화면에 출력하는 것이 이에 해당한다.

즉, 프로그램은 입력 → 처리 → 출력의 순서로 동작한다고 할 수 있다.


1️⃣주석 (Comment)

덧셈 프로그램 # 1

위 이미지는 두 개의 숫자의 합을 계산하는 간단한 C 프로그램을 설명하는 예시이다. 각 요소의 설명은 다음과 같다:

  1. 주석:

    • /* 두 개의 숫자의 합을 계산하는 프로그램 */ 부분은 주석으로, 프로그램의 목적을 설명하고 있다. 이 부분은 실행되지 않으며, 코드에 대한 설명을 추가하기 위한 용도이다. 주석은 코드를 설명하는 글이다.
  2. 전처리기 지시문:

    • #include <stdio.h>는 C 표준 입출력 라이브러리를 포함하는 전처리기 지시문이다. 이 라이브러리는 printf() 함수를 사용하여 출력을 할 수 있게 한다.
  3. 변수 선언:

    • int x; int y; int sum; 부분에서 세 개의 변수가 선언되었다.

      • x: 첫 번째 숫자를 저장할 변수.

      • y: 두 번째 숫자를 저장할 변수.

      • sum: 두 숫자의 합을 저장할 변수.

  4. 연산:

    • x = 100; y = 200; sum = x + y; 부분에서 두 변수를 초기화하고, xy의 합을 sum에 저장한다.
  5. 출력:

    • printf("두 수의 합: %d", sum);를 통해 두 수의 합을 출력한다. 여기서 %d는 정수 값을 출력하는 포맷 지정자이다.
  6. 결과:

    • 최종적으로 콘솔에 "두 수의 합: 300"이라는 결과가 출력된다.

이 프로그램은 간단한 덧셈 연산을 수행하고, 그 결과를 출력하는 기본적인 C 프로그램이다.


2가지 주석 방법

주석은 코드에 대한 설명을 추가하는 데 사용되며, 컴파일러에 의해 무시된다.

  1. 여러 줄 주석 (Multiline comment):

    • /*로 시작하고 */로 끝나는 형식의 주석이다. 이 주석은 여러 줄에 걸쳐 작성할 수 다.

    • 예시:

        cCopy code/* 한 줄로 된 주석 */
        /* 
           여러 
           줄로 
           된 주석
        */
      
  2. 한 줄 주석 (Single-line comment):

    • //로 시작하는 주석으로, 한 줄에만 적용된다. 이 주석은 해당 줄의 끝까지 적용되며, 주석 뒤에 작성된 내용은 무시된다.

    • 예시:

        cCopy code// 이 줄은 전체가 주석이다.
        int x; // 여기서부터 줄의 끝까지가 주석이 된다.
      

이 두 가지 주석 방법을 사용하여 코드에 설명을 추가하거나, 특정 코드의 실행을 임시로 중지시키는 데 활용할 수 있다.


주석의 중요성

  1. 주석은 프로그램 이해를 돕는다:

    • 다른 사람이 프로그램을 보거나, 작성자가 시간이 지난 후에 다시 볼 때, 주석이 있으면 프로그램의 내용을 더 쉽게 이해할 수 있다. 시간이 흐르면 만든 사람조차도 코드의 구체적인 내용을 기억하기 어려울 수 있기 때문에, 주석은 프로그램의 이해도를 높여준다.
  2. 좋은 주석은 반복적이지 않고, 의도를 명확히 한다:

    • 좋은 주석은 단순히 코드를 설명하는 것이 아니라, 코드를 작성한 이유와 의도를 명확하게 나타내는 것이다. 코드 자체가 명확하다면 주석으로 그 내용을 반복해서 설명할 필요는 없다. 대신, 주석은 해당 코드가 무엇을 의도했는지를 전달하는 데 집중해야 한다.

따라서 주석은 프로그램의 가독성과 유지보수성을 높이는 중요한 도구이다. 코드의 동작을 이해하는 데 필요한 배경이나 의도를 주석으로 명확히 표현하는 것이 좋다.


주석 스타일


들여쓰기(Indentation)

  • 들여쓰기(indentation): 같은 수준에 있는 코드 문장들을 코드 블록의 가독성을 높이기 위해 왼쪽 끝에서 몇 칸 안쪽으로 밀어내어 작성하는 것이다.

    • 들여쓰기를 통해 코드의 구조와 계층을 시각적으로 구분할 수 있어, 코드의 가독성이 크게 향상된다.

    • 특히 조건문, 반복문, 함수 등의 블록 내부에 있는 문장들은 들여쓰기를 통해 코드 블록의 시작과 끝을 쉽게 파악할 수 있다.

들여쓰기는 코드 작성에서 중요한 스타일 요소로, 다른 사람이 코드를 쉽게 이해할 수 있도록 돕는다.


주석과 들여 쓰기가 없다면?

주석과 들여쓰기가 없다면 프로그램이 실행은 되지만 다음과 같은 문제가 발생할 수 있다.

  1. 프로그램의 내용을 이해하기 어렵다:

    • 주석이 없으면 코드가 어떤 처리를 하고 있는지, 어떤 의도로 작성된 것인지 파악하기 힘들다. 특히 시간이 지나거나 다른 사람이 코드를 볼 때, 주석이 없다면 프로그램의 동작을 이해하는 데 많은 시간이 걸릴 수 있다.
  2. 같은 수준의 문장 구분이 어렵다:

    • 들여쓰기가 없으면 코드의 구조와 계층이 명확하지 않아, 어떤 문장이 같은 블록에 속하는지 구분하기 어렵다. 이는 조건문이나 반복문처럼 여러 문장이 중첩될 때 특히 문제가 된다. 들여쓰기가 없는 코드는 오류를 찾기도 어렵고, 수정할 때 실수가 생길 가능성이 높아진다.

따라서, 주석과 들여쓰기는 코드의 가독성과 유지보수성을 높이는 데 매우 중요한 역할을 한다. 이를 소홀히 하면 코드가 복잡해지고, 협업이나 장기적인 프로젝트에서 문제가 발생할 수 있다.

중간 점검


2️⃣전처리(Preprocessor)

  1. #include <stdio.h>:

    • 외부 파일을 포함시키라는 의미의 전처리기 지시문이다. C 프로그램에서 필요한 외부 라이브러리나 헤더 파일을 프로그램에 포함시키기 위해 사용다.
  2. # 기호로 시작:

    • 전처리기는 항상 # 기호로 시작한다. 이는 컴파일러에게 전처리 작업을 지시하는 명령어이다.
  3. stdio.h 파일:

    • **stdio.h**는 **표준 입출력(standard input/output)**과 관련된 라이브러리 함수들의 정의가 들어 있는 헤더 파일이다. 이를 포함함으로써 printf(), scanf()와 같은 입출력 함수들을 사용할 수 있게 된다.

전처리기는 프로그램이 컴파일되기 전에 필요한 외부 파일을 불러오고, 코드의 구조를 명확히 하는 중요한 역할을 한다.

위 이미지는 C 프로그램에서 #include <stdio.h> 지시문이 어떻게 동작하는지를 설명하고 있다. 주요 내용은 다음과 같다:

  1. hello.c 파일:

    • 첫 번째 프로그램인 hello.c 파일에서 #include <stdio.h> 지시문을 사용하여 stdio.h 헤더 파일을 포함하고 있다.

    • stdio.h는 표준 입출력 라이브러리로, 프로그램에서 **printf()**와 같은 입출력 함수를 사용할 수 있게 해준다.

  2. stdio.h 파일:

    • **stdio.h**는 C 표준 라이브러리의 헤더 파일로, 다양한 입출력 함수가 정의되어 있다. 예시로 **int printf(char *, ...);**와 같은 함수의 선언이 들어 있다.

    • 이 헤더 파일을 포함함으로써 **printf()**와 같은 함수를 사용할 수 있게 되며, 이 함수는 "Hello World!"를 출력하는 데 사용된다.

이미지는 **#include <stdio.h>**가 stdio.h 파일을 포함하여 프로그램에서 표준 입출력 함수들을 사용할 수 있도록 연결하는 과정을 시각적으로 보여주고 있다.


중간점검


3️⃣함수 (Function)


  1. 함수(function):

    • 함수는 특정 기능을 수행하는 코드의 처리 단계를 묶어서 이름을 붙인 것이다. 함수는 코드의 일부분을 재사용할 수 있게 하며, 프로그램을 더 체계적으로 관리할 수 있도록 돕는다.

    • 함수를 호출하면, 해당 함수 내의 코드가 실행된다.

  2. 함수는 프로그램을 구성하는 기본적인 단위:

    • 함수는 프로그램의 기본 구성 요소이다. 프로그램에서 함수는 각기 다른 작업을 수행하는 부품 역할을 하며, 이러한 부품들이 모여서 프로그램 전체가 완성된다.

    • 함수는 프로그램을 모듈화하고, 코드를 더 간결하고 읽기 쉽게 만든다.

함수를 사용하면 코드의 가독성이 높아지고, 중복을 피하며, 유지보수가 쉬워진다.


함수안에 들어있는 것


함수의 구조

  1. 함수의 출력 타입 (int):

    • 이 함수가 정수형(int) 값을 반환한다는 것을 의미한다. 함수가 끝나면 return을 통해 정수값을 반환하게 된다.
  2. 함수의 이름 (main):

    • 함수의 이름은 **main**이다. C 프로그램에서 main() 함수는 프로그램의 시작점이며, 모든 프로그램은 이 함수부터 실행된다.
  3. 함수의 입력 타입 (void):

    • **void**는 이 함수가 입력을 받지 않는다는 것을 의미한다. 즉, main() 함수는 외부에서 값을 전달받지 않고 실행된다.
  4. 함수의 시작 ({):

    • 중괄호 {는 함수의 시작을 나타낸다. 함수 내부의 코드가 중괄호 안에 들어간다.
  5. 함수의 몸체:

    • 함수가 실행될 때 수행할 작업들이 함수의 몸체 부분에 들어간다. 이 예시에서는 함수가 할 일들이 생략되어 있지만, 실제 코드에서는 여러 명령문들이 포함된다.
  6. 함수의 종료 (}):

    • 중괄호 }는 함수의 끝을 나타낸다. 함수의 모든 작업이 끝나면 이 부분에서 함수가 종료된다.

이 이미지는 C 프로그램에서 함수가 어떻게 구성되는지를 시각적으로 설명하고 있으며, main() 함수는 프로그램 실행의 시작점이라는 중요한 의미를 가지고 있다.


함수 문장

  • 함수 내부에는 여러 문장들이 들어간다. 이 문장들은 하나씩 순차적으로 실행되며, 함수가 할 작업을 정의한다.

  • 예를 들어, "문장 1;", "문장 2;", "문장 3;" 같은 문장들이 함수의 몸체에 들어가 실행된다.

  • 모든 문장은 ; 로 끝난다.


return 문장

  • return은 함수를 종료시키면서 값을 반환하는 키워드이다.

    • return 키워드는 함수의 실행을 종료하고, 호출한 곳으로 값을 반환한다. 함수가 작업을 마친 후 결과를 돌려줄 때 사용된다.
  • 값을 반환하기 위해서는 return 다음에 반환값을 써주면 된다:

    • 함수가 결과값을 반환하려면 return 뒤에 반환할 값을 적는다. 이 값은 함수의 반환형과 일치해야 한다.

    • 예: return 0;은 함수가 정수형 값 0을 반환하고 종료한다는 뜻이다.


main()은 누가 호출할까? 운영체제

위 이미지는 C 프로그램에서 main() 함수가 어떻게 호출되는지를 설명하는 내용이다. 주요 설명은 다음과 같다.

  1. 운영체제(Windows):

    • C 프로그램이 실행될 때, 운영체제가 프로그램의 시작을 담당하며, 가장 먼저 main() 함수를 호출한다. main() 함수는 C 프로그램의 시작점(entry point)이다.
  2. main() 함수:

    • main() 함수가 호출되면, 그 안에 있는 코드가 실행된다. 예를 들어, printf("..."); 함수가 호출된다. printf()는 화면에 텍스트를 출력하는 함수이다.
  3. printf() 함수:

    • main() 함수에서 printf() 함수를 호출하면, printf() 함수 내부의 명령문들이 실행되어 화면에 문자열을 출력하는 작업이 수행된다.

    • printf() 함수 내부에는 여러 문장들이 정의되어 있으며, 이러한 문장들이 차례로 실행된다.

  4. 함수 호출:

    • 이미지의 오른쪽에서는 "함수를 실행하려면 함수를 호출하면 됩니다."라는 설명이 있다. 이는 C 프로그램에서 함수가 호출되면, 그 함수에 포함된 명령들이 실행된다는 것을 의미한다.

결론: C 프로그램에서 main() 함수는 운영체제에 의해 자동으로 호출된다. main() 함수가 실행되면 그 안에 있는 코드, 예를 들어 printf() 함수가 호출되고, 그 함수의 내부 문장들이 실행된다.


4️⃣변수 (Variable)

    • 프로그램에서 데이터를 일시적으로 저장하기 위해 사용하는 메모리 공간이다. 변수는 프로그램이 실행되는 동안 값을 저장하고, 필요할 때 그 값을 참조하거나 변경할 수 있다.

      • 변수는 다양한 데이터 유형(정수, 실수, 문자열 등)을 저장할 수 있으며, 그 값을 변경할 수 있는 가변적인 데이터 저장소이다.

변수는 프로그램의 핵심 구성 요소로, 데이터를 저장하고 처리하는 데 중요한 역할을 한다.


변수는 왜 필요한가?

  • 변수는 데이터 값을 일시적으로 저장하는 역할을 한다:

    • 프로그램이 실행되는 동안 데이터 값을 임시로 저장하기 위해 변수가 필요하다. 변수는 값을 저장하고, 그 값을 반복적으로 사용할 수 있게 해 준다.

    • 예를 들어, 계산 결과나 입력된 값을 임시로 저장할 때 변수를 사용한다. 변수가 없으면 데이터를 처리할 때마다 새로운 값을 입력하거나 계산해야 하며, 효율성이 크게 떨어진다.

변수는 데이터를 효율적으로 관리하고, 프로그램 내에서 필요한 정보를 계속 유지하거나 수정할 수 있게 도와준다.


변수의 종류

  1. 변수는 데이터를 담는 상자:

    • 변수는 프로그램에서 데이터를 임시로 저장하는 상자처럼 생각할 수 있다. 이 상자에 값을 넣고, 필요할 때 값을 꺼내 사용하는 방식으로 작동한다.

    • 예를 들어, x = 2라는 코드는 x라는 변수에 숫자 2를 저장하는 것이다.

  2. 변수의 이름:

    • 변수의 이름은 상자에 붙여진 라벨과 같다. 프로그램에서 변수의 이름을 통해 해당 변수에 저장된 값을 참조할 수 있다.

    • 예: int x;에서 x가 변수의 이름이다.

  3. 자료형과 변수 이름:

    • 자료형은 변수에 어떤 종류의 데이터가 저장될 수 있는지를 정의한다. 예를 들어, int는 정수형 데이터를 저장할 수 있는 자료형이다.

    • 변수의 선언은 자료형과 변수 이름을 함께 사용한다. 예: int x;는 정수형 변수 x를 선언하는 것이다.

변수의 종류데이터의 종류에 따라 여러 가지 타입이 있다. 각 타입은 저장할 수 있는 데이터의 종류를 정의한다. 주요 변수 타입은 다음과 같다:

  1. 정수형 변수 (int):

    • 정수 값을 저장하는 변수

    • 예: int x = 10; (정수 10을 저장)

  2. 실수형 변수 (float, double):

    • 실수(소수점이 있는 숫자)를 저장하는 변수이다. float은 단정밀도, double은 배정밀도로 더 많은 소수점을 저장할 수 있다.

    • 예: float pi = 3.14f; (실수 3.14를 저장)

  3. 문자형 변수 (char):

    • 한 개의 문자를 저장하는 변수.

    • 예: char letter = 'A'; (문자 'A'를 저장)

  4. 문자열 변수 (char 배열):

    • 여러 개의 문자를 저장하는 변수. C 언어에서는 문자열을 char 배열로 관리한다..

    • 예: char name[] = "Alice"; (문자열 "Alice"를 저장)

  5. 논리형 변수 (bool):

    • 참(True) 또는 거짓(False) 값을 저장하는 변수. C 언어에서는 stdbool.h를 포함하여 사용하며, 참/거짓을 나타낸다.

    • 예: bool isTrue = true; (참을 저장)

  6. 포인터 변수 (pointer):

    • 메모리 주소를 저장하는 변수이다. 주로 다른 변수나 배열의 주소를 참조할 때 사용된다.

    • 예: int *ptr = &x; (변수 x의 주소를 저장)

변수 타입은 데이터의 성격에 맞는 자료형을 선택하는 것이 중요하다. 이를 통해 메모리를 효율적으로 사용하고, 데이터 처리 속도를 최적화할 수 있다.


자료형(Data type)

  1. 자료형이란:

    • 자료형(data type)은 변수가 저장할 데이터가 정수인지, 실수인지, 또는 다른 종류의 데이터인지를 지정하는 것이다. 프로그램에서 데이터를 효율적으로 저장하고 처리하기 위해, 각 변수에 적절한 자료형을 할당해야 한다.
  2. 자료형의 종류:

    • 정수형 (Integer type):

      • 정수 값을 저장하는 자료형이다.

      • 예: 💡int, long, short

      • 예시: int age = 25; (나이 값을 저장)

    • 부동소수점형 (실수형, Floating-point type):

      • 소수점을 포함한 실수 값을 저장하는 자료형이다.

      • 예: 💡float, 💡double

      • 예시: float pi = 3.14; (π 값을 저장)

    • 문자형 (Character type):

      • 하나의 문자를 저장하는 자료형이다.

      • 예: 💡char

      • 예시: char grade = 'A'; (문자 'A'를 저장)

이 자료형을 통해 변수는 특정 유형의 데이터를 저장하고 처리할 수 있으며, 자료형을 명확히 지정하는 것은 메모리 관리와 성능 측면에서 매우 중요하다.


변수 선언

  • 변수 선언:

    • 변수 선언은 컴파일러에게 해당 변수가 어떤 타입의 데이터를 저장할 것인지를 미리 알리는 과정이다. 변수의 자료형과 이름을 선언함으로써, 컴파일러는 이 변수를 어떻게 처리해야 할지 알 수 있게 된다..

    • 선언된 변수는 이후 프로그램에서 값을 저장하거나 읽는 데 사용된다.

예시:

int age;
float pi;
char grade;
  • int age;: 정수형 변수를 선언하고, 이 변수는 정수 값을 저장할 수 있다.

  • float pi;: 실수형 변수를 선언하고, 이 변수는 소수점을 포함한 실수 값을 저장할 수 있다.

  • char grade;: 문자형 변수를 선언하고, 이 변수는 한 개의 문자를 저장할 수 있다.

변수 선언은 변수를 사용하는 첫 단계로, 프로그램이 변수를 제대로 처리할 수 있도록 컴파일러에게 정보를 제공하는 역할을 합니다.


변수 선언

  1. 자료형은 정수형 (int):

    • **int**는 정수형 자료형을 나타내며, 정수 값을 저장할 수 있는 변수를 선언한다.
  2. 변수 이름 (x, y, sum):

    • 각 변수의 이름은 x, y, 그리고 **sum**이다.

      • x: 첫 번째 정수를 저장하는 변수.

      • y: 두 번째 정수를 저장하는 변수.

      • sum: 두 정수의 합을 저장하는 변수.

  3. 주석:

    • 각 변수 선언 옆에는 주석으로 해당 변수가 어떤 용도로 사용되는지를 설명하고 있다. 주석은 프로그램의 가독성을 높이고, 변수가 무엇을 의미하는지 쉽게 이해할 수 있도록 돕는다.

이 예시에서 정수형 변수를 선언하고, xy에 값을 저장한 뒤 그 값을 더한 결과를 sum에 저장하는 프로그램을 작성할 수 있다.


변수 선언

Uploaded image

  1. 변수의 역할:

    • 각 변수는 정수를 저장할 수 있는 메모리 공간이다. 선언된 변수들은 프로그램이 실행되는 동안 값을 저장하고 사용할 수 있다.
  2. 메모리에서의 변수 할당:

    • 그림에서는 변수들이 각각 메모리 공간 안에 x, y, **sum**이라는 이름으로 라벨링된 상자로 표현되어 있다. 이 상자들이 메모리의 일부분을 차지하며, 각각의 정수 값을 저장할 수 있다.
  3. 변수의 역할:

    • 각 변수는 정수를 저장하기 위해 메모리에서 공간이 할당되고, 이 공간에 특정 이름이 붙여져 프로그램 내에서 사용된다.

이 시각적 예시는 변수가 어떻게 메모리에 저장되고, 그 역할을 어떻게 수행하는지를 보여준다. 변수는 메모리 내에서 데이터를 저장하고 프로그램의 로직에 따라 계산 및 처리된.


한 줄에 여러 개의 변수 선언

Uploaded image

위 이미지는 여러 변수를 한 줄에서 선언하는 방법을 설명하고 있다.

  1. 변수 선언 방식:

    • **int x, y, sum;**와 같이 여러 변수를 한 번에 선언할 수 있다. 한 줄에서 같은 자료형의 변수들을 쉼표(,)로 구분하여 선언할 수 있으며, 이렇게 하면 코드가 더 간결해진다.

    • 이 방식은 여러 변수를 같은 자료형으로 선언할 때 사용된다.

  2. 메모리에서의 변수 할당:

    • 각 변수는 여전히 독립된 메모리 공간을 차지하며, 이름이 붙은 상자처럼 각각의 데이터를 저장할 수 있다.

    • x, y, sum이라는 이름의 변수들이 메모리에서 각각 공간을 차지하고, 정수 값을 저장할 수 있다.

  3. 결과:

    • 이 방법은 각 변수가 정수형 데이터를 저장할 수 있도록 메모리 공간을 할당받는다는 점에서 이전의 예시와 동일하다. 차이점은 여러 변수를 한 번에 선언했다는 것.

이 그림은 여러 변수를 효율적으로 선언하는 방법을 시각적으로 설명하고 있으며, int x, y, sum;와 같은 코드는 C 프로그램에서 자주 사용된다.


변수의 이름

  • 함수 이름: sub

  • 변수 이름: x;


식별자(identifier)

    • 식별자변수의 이름을 의미하며, 변수들이나 함수 등을 구분하고 식별하는 역할을 한다. 예를 들어, 사람의 이름이 각 사람을 구별하듯이, 변수의 이름은 변수와 다른 변수들을 구별해준다.

      • 프로그래머가 변수의 이름을 자유롭게 지정할 수 있지만, 몇 가지 규칙을 반드시 지켜야 한다.

변수 이름(식별자) 규칙:

  1. 첫 글자는 문자 또는 밑줄(_)로 시작해야 한다. 숫자로 시작할 수 없다.

    • 올바른 예: age, _count

    • 잘못된 예: 1number (숫자로 시작하면 안 됨)

  2. 대소문자를 구분한다.

    • 예: numberNumber는 서로 다른 변수로 인식된다.
  3. 공백을 포함할 수 없다.

    • 올바른 예: totalScore

    • 잘못된 예: total score (공백을 포함할 수 없음)

  4. 특수 문자는 사용할 수 없지만, 밑줄(_)은 사용할 수 있다.

    • 올바른 예: my_variable

    • 잘못된 예: my-variable (특수문자 사용 불가)

변수의 이름은 의미 있는 단어로 작성하는 것이 좋다. 이렇게 하면 코드의 가독성이 높아지고, 변수가 어떤 역할을 하는지 쉽게 파악할 수 있게 된다.


키워드

키워드(keyword): C언어에서 고유한 의미를 가지고 있는 특별한 단어이다. 예약어(reserved words) 라고도 한다


변수의 이름

변수 이름의 규칙에 대한 설명이다:

  1. sum:

    • 변수 이름은 영문 알파벳 문자로 시작할 수 있다.
  2. _count:

    • 변수 이름은 밑줄 문자로 시작할 수 있다. 밑줄은 변수의 첫 글자로 사용할 수 있는 유일한 특수 문자이다.
  3. number_of_pictures:

    • 변수 이름 중간에 밑줄 문자를 넣어 사용할 수 있다. 여러 단어를 연결할 때 주로 사용된다.
  4. King3

    • 변수 이름의 첫 글자가 아니라면, 숫자를 포함할 수 있다. 숫자는 두 번째 위치 이후에 사용할 수 있다.
  5. 2nd_base (잘못된 예):

    • 변수 이름은 숫자로 시작할 수 없다. 첫 글자는 반드시 문자나 밑줄이어야 한다.
  6. money# (잘못된 예):

    • #과 같은 특수 기호는 변수 이름에 사용할 수 없다. 변수 이름에 사용할 수 있는 특수 문자는 밑줄(_)뿐이다.
  7. double (잘못된 예):

    • double은 C 언어의 키워드이므로, 변수 이름으로 사용할 수 없다. 키워드는 프로그래밍 언어에서 이미 특정한 의미를 가지기 때문에 변수 이름으로 사용할 수 없다.

이 규칙들을 지켜서 변수를 선언해야 컴파일러가 올바르게 인식하고 프로그램이 제대로 작동할 수 있게된다.


좋은 변수 이름

좋은 변수 이름을 짓는 방법에 대한 설명이다:

  1. 변수의 역할을 가장 잘 설명하는 이름을 선택해야 한다:

    • 변수의 이름은 변수의 목적이나 역할을 명확히 나타내야 한다. 이로 인해 코드의 가독성이 높아지고, 협업이나 유지보수 시에 이해하기 쉽게 된다.

    • 안 좋은 예: i, j, k와 같은 단일 문자 변수는 의미가 모호해서 적합하지 않다.

      • 예: i, j, k는 반복문의 인덱스로 자주 사용되지만, 명확한 의미가 없는 경우에는 피하는 것이 좋다.
    • 좋은 예: year, month, date처럼 변수의 역할을 명확히 설명하는 이름을 선택하는 것이 좋다.

  2. 여러 단어로 된 이름을 만드는 방법:

    • 변수 이름이 여러 단어로 이루어질 때, 이를 구분하여 읽기 쉽게 만드는 두 가지 방식이 있다.

    • 밑줄 방식:

      • 각 단어 사이에 **밑줄(_)**을 넣어 변수 이름을 작성한다.

      • 예: bank_account, user_name, total_score

    • 카멜 케이스 방식:

      • 각 단어의 첫 글자를 대문자로 작성하는 방식이다. 첫 번째 단어는 소문자로 시작하고, 그 다음 단어부터는 첫 글자를 대문자로 한다.

      • 예: bankAccount, userName, totalScore

이와 같이, 변수 이름은 의미 있는 단어들로 구성되어야 하며, 여러 단어로 이루어진 경우 읽기 쉬운 방식으로 작성해야 한다.


변수의 초기화(Variable Initialization)

“초기에 어떤값을 가지느냐” 가 변수의 초기화이다.

  1. 변수에 초기값을 줄 수 있다:

    • 변수를 선언하면서 초기값을 함께 할당할 수 있다. 이렇게 하면 변수가 선언된 시점에 바로 값이 설정된다.

    • 예:

        int x = 10;
        int y = 20;
        int sum = 0;
      
  2. 동일한 타입의 변수들은 같은 줄에서 선언과 동시에 초기화할 수 있다:

    • 동일한 자료형을 가진 변수는 같은 줄에서 선언과 초기화를 한 번에 할 수 있다.

    • 예:

        int width = 100, height = 200;
      
  3. 초기화 방식에 대한 주의사항:

    • 잘못된 예로, int width, height = 200;처럼 하나의 변수만 초기화하는 경우가 있다. 이 구문은 문법적으로 오류는 아니지만, 모든 변수가 초기화된 것처럼 보이게 하여 혼란을 줄 수 있기 때문에 피하는 것이 좋다. 이 경우, width는 초기화되지 않고 height만 초기화된다..

    • 예:

        int width, height = 200;  // width는 초기화되지 않음
      

이와 같이 명확한 변수 초기화는 코드의 가독성을 높이고, 잘못된 초기화로 인해 발생할 수 있는 오류를 방지할 수 있다.