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;
: 프로그램을 성공적으로 종료변수(variable)는 데이터를 입력 받으려면, 입력 받고자하는 데이터의 타입에 해당하는 크기의 메모리를 우선 할당받아야 한다. 이처럼 데이터를 저장하기 위해 할당받은 메모리 공간을 변수(variable)라고 한다.
int a = 10; // 정수형 변수
float b = 5.5; // 실수형 변수
char c = 'A'; // 문자형 변수
double d = 10.99; // 더 큰 범위의 실수형 변수
문자열(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을 포함함.입력과 출력을 위해 scanf
와 printf
함수를 사용한다.
#include <stdio.h>
int main() {
int num;
int *p = # // 포인터 p가 num의 주소를 가리키도록 설정
printf("Enter a number: ");
scanf("%d", &num); // 입력한 숫자를 num에 저장
// scanf("%d", p); 포인터를 사용하여 입력한 숫자를 num에 저장
printf("You entered: %d\n", *p); // 포인터를 사용하여 num의 값을 출력
return 0;
}
헤더 파일 포함 :
#include <stdio.h>
- 표준 입출력 라이브러리를 포함.
변수 및 포인터 선언 :
int num;
- 정수형 변수 num을 선언.int *p = #
- 포인터 p를 선언하고 num의 주소를 p에 저장.printf("Enter a number: ");
- 사용자에게 숫자를 입력하라는 메시지를 출력.scanf("%d", &num);
- 사용자가 입력한 숫자를 num에 저장하고, &num
은 num의 주소를 의미.printf("You entered: %d\n", *p);
- 포인터 p를 역참조(dereference)하여 num의 값을 출력하며, *p
는 num의 값을 의미.return 0;
- 프로그램을 성공적으로 종료
- 포인터 사용: 포인터 p는 num의 주소를 가리키며,
*p
를 통해 num의 값에 접근할 수 있다.- 입출력 함수:
scanf
는 사용자로부터 입력을 받아 변수를 초기화하며,printf
는 변수의 값을 출력한다.
scanf()
:C언어의 표준 입력 함수로, 사용자로부터 다양한 데이터를 다양한 서식에 맞춰 입력받을 수 있게 해준다. scanf()
함수에 포함된 &
기호는 주소 연산자(&)라고 하며, 이 주소 연산자는 입력받은 데이터를 뒤에 나오는 변수에 저장하라는 의미이다.
조건문은 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;
}
반복문은 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 (int i = 0; i < 5; i++) {
printf("for loop: %d\n", i);
}
i를 0부터 시작하여 5보다 작은 동안 반복한다. 매 반복마다 i의 값을 출력하고 i를 1씩 증가시킨다.
int j = 0;
while (j < 5) {
printf("while loop: %d\n", j);
j++;
}
j를 0으로 초기화하고, j가 5보다 작은 동안 반복한다. 매 반복마다 j의 값을 출력하고 j를 1씩 증가시킨다.
int k = 0;
do {
printf("do while loop: %d\n", k);
k++;
} while (k < 5);
k를 0으로 초기화하고, 최소한 한 번은 실행한 후 k가 5보다 작은 동안 반복한다. 매 반복마다 k의 값을 출력하고 k를 1씩 증가시킨다.
배열은 동일한 자료형의 데이터 집합을 저장할 수 있다.
#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
함수는 특정 작업을 수행하는 코드 블록이며, C 언어에는 main()
함수, 라이브러리 함수, 사용자 정의 함수가 있다.
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; }