C언어는 프로그래밍 언어 중에서도 가장 기본적인 언어 중 하나입니다. 이 언어를 이용하면 컴퓨터 시스템을 제어하고, 프로그램을 작성할 수 있습니다. C언어의 기초문법을 자세히 설명해보겠습니다.
주석
주석은 프로그램에서 설명을 위해 사용되는 부분으로, 컴파일러에 의해 무시됩니다. 주석은 다음과 같은 두 가지 형태로 작성됩니다
// 한 줄 주석
/*
여러 줄 주석
*/
변수
C언어에서는 변수를 사용하여 값을 저장하고, 이를 다른 곳에서 사용할 수 있습니다. 변수는 다음과 같은 형식으로 선언됩니다.
데이터_타입 변수_이름;
ex) int a;
여기서 데이터_타입은 변수에 저장될 값의 타입을 의미하며, 변수_이름은 변수의 이름을 의미합니다. 예를 들어, 다음과 같이 int 타입의 변수 x를 선언할 수 있습니다.
int x;
int x = 10;
또한, 변수를 선언과 동시에 초기화할 수 있습니다. 예를 들어, 다음과 같이 int 타입의 변수 x를 선언과 동시에 10으로 초기화할 수 있습니다.
int x = 10;
연산자
C언어에서는 다양한 연산자를 사용하여 계산을 수행할 수 있습니다. 이 중에서 대표적인 연산자들을 설명하겠습니다.
산술 연산자
산술 연산자는 다음과 같습니다.
연산자설명
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 |
대입 연산자
대입 연산자는 다음과 같습니다.
연산자설명
= | 대입 연산자 |
+= | 덧셈 후 대입 |
-= | 뺄셈 후 대입 |
*= | 곱셈 후 대입 |
/= | 나눗셈 후 대입 |
%= | 나머지 후 대입 |
비교 연산자
비교 연산자는 다음과 같습니다.
연산자설명
== | 같은지 비교 |
!= | 다른지 비교 |
> | 큰지 비교 |
>= | 크거나 같은지 |
< | 작은지 비 |
배열
C언어에서는 배열을 사용하여 여러 개의 데이터를 하나의 변수에 저장할 수 있습니다. 배열은 다음과 같이 선언됩니다.
데이터_타입 배열_이름[배열_크기];
여기서 데이터_타입은 배열에 저장될 데이터의 타입을 의미하며, 배열_이름은 배열의 이름을 의미합니다. 또한, 배열_크기는 배열의 크기를 의미합니다. 예를 들어, 다음과 같이 int 타입의 5개의 원소를 가진 배열 arr을 선언할 수 있습니다.
int arr[5];
배열의 각 원소는 다음과 같이 인덱스를 이용하여 접근할 수 있습니다.
arr[0] = 10;
arr[1] = 20;
조건문
C언어에서는 조건문을 사용하여 프로그램의 흐름을 제어할 수 있습니다. 조건문은 다음과 같이 작성됩니다.
if (조건식) {
// 조건식이 참일 경우 실행될 코드
} else {
// 조건식이 거짓일 경우 실행될 코드
}
여기서 조건식은 참 또는 거짓을 판단할 수 있는 식을 의미합니다. 예를 들어, 다음과 같이 x가 10보다 크면 "x is greater than 10"을 출력하고, 그렇지 않으면 "x is less than or equal to 10"을 출력하는 코드를 작성할 수 있습니다.
int x = 15;
if (x > 10) {
printf("x is greater than 10");
} else {
printf("x is less than or equal to 10");
}
반복문
C언어에서는 반복문을 사용하여 동일한 코드를 여러 번 실행할 수 있습니다. C언어에서는 for문과 while문이 가장 일반적으로 사용됩니다.
for문
for문은 다음과 같이 작성됩니다.
for (초기화; 조건식; 증감식) {
// 조건식이 참일 경우 실행될 코드
}
여기서 초기화는 반복문이 시작될 때 한 번만 실행되는 코드를 의미합니다. 조건식은 반복문이 실행될 조건을 의미하며, 이 조건식이 참이면 반복문이 계속해서 실행됩니다. 증감식은 반복문이 실행된 후에 실행되는 코드를 의미합니다.
포인터
포인터(pointer)는 C언어에서 가장 중요한 개념 중 하나입니다. 포인터는 메모리 주소를 가리키는 변수로, 포인터를 이용하면 메모리 주소를 직접 조작할 수 있습니다.
포인터는 다음과 같이 선언됩니다.
데이터_타입 *포인터_변수_이름;
예를 들어, int형 포인터 ptr을 선언하려면 다음과 같이 작성합니다.
int *ptr;
포인터 변수에는 다음과 같이 메모리 주소를 할당할 수 있습니다.
int num = 10;
int *ptr = # // ptr 변수에 num 변수의 주소를 할당
포인터 변수를 이용하여 해당 메모리 주소에 저장된 값을 가져오거나 변경할 수 있습니다.
int num = 10;
int *ptr = # // ptr 변수에 num 변수의 주소를 할당
*ptr = 20; // num 변수의 값을 20으로 변경
구조체
구조체(struct)는 여러 개의 변수를 묶어서 하나의 변수로 만드는 자료형입니다. 구조체는 다음과 같이 정의됩니다.
struct 구조체_이름 {
데이터_타입 멤버_변수_이름1;
데이터_타입 멤버_변수_이름2;
...
};
예를 들어, 다음과 같이 Person이라는 구조체를 정의할 수 있습니다.
struct Person {
char name[20];
int age;
};
위의 구조체를 사용하여 변수를 선언할 수 있습니다.
struct Person p1;
구조체 멤버 변수에 접근할 때는 다음과 같이 작성합니다.
p1.age = 20;
동적 메모리 할당
동적 메모리 할당(dynamic memory allocation)은 프로그램 실행 중에 메모리를 할당하는 방법입니다. 동적 메모리 할당을 사용하면 프로그램의 유연성을 높일 수 있습니다.
동적 메모리 할당은 다음과 같은 함수를 사용하여 수행할 수 있습니다.
void *malloc(size_t size);
위의 함수는 메모리 블록을 할당하고, 할당된 메모리 블록의 주소를 반환합니다. size 매개변수는 할당할 메모리 블록의 크기를 지정합니다.
할당된 메모리 블록을 사용한 후에는 다음과 같은 함수를 사용하여 메모리를 해제해야 합니다.
void free(void *ptr);
'코딩교육 > C언어' 카테고리의 다른 글
목동코딩학원, C언어 1~100 출력하기 (0) | 2023.03.19 |
---|---|
목동코딩학원, C언어 기본 알고리즘 수업 (0) | 2023.03.19 |
목동코딩학원, 지금도 간혹 하는 사람이 있는 , 추억의 테트리스 (0) | 2023.03.16 |
목동코딩학원, c언어 가위바위보 게임 소스(1) (2) | 2023.03.16 |
목동코딩학원, C 언어로 구현한 간단한 가위바위보 게임 (0) | 2023.03.11 |