기초부터 차근차근 배우는 C 언어 - 'Hello, World!'부터 시작하는 프로그래밍 입문
C 언어, 기초부터 차근차근 배우기(:
C 언어는 오래된 전통적인 프로그래밍 언어이다. 처음 접하는 사람에게는 다소 어려워 보일 수 있지만, 기초부터 하나씩 배우다 보면 금방 이해할 수 있다. 특히, C에서 사용하는 텍스트 코드가 생소하게 느껴질 수 있지만, 익숙해지면 아주 자연스럽게 다가온다. C 언어의 기초를에 관한 공부기록 + "hello, world!"를 출력하는 간단한 프로그램을 통해 C의 기본적인 문법을 정리해보았다.
1. #include <stdio.h> - 외부 라이브러리 포함하기
C 언어에서 외부 라이브러리를 사용할 때는 #include 지시어를 사용하여 해당 라이브러리를 포함시킨다. stdio.h는 Standard Input/Output의 약자로, 입출력 기능을 제공하는 라이브러리이다. 이 라이브러리를 포함시켜야 printf()와 scanf() 같은 함수를 사용할 수 있다.
- #include <stdio.h>를 포함하지 않으면 입력과 출력 기능을 사용할 수 없다.
#include <stdio.h> // 표준 입출력
#include <cs50.h> // CS50 라이브러리
int main(void) {
// 사용자로부터 이름을 입력받음
string answer = get_string("What's your name? ");
// 입력받은 이름을 출력
printf("My name is %s\n", answer);
}
2. int main(void) - 프로그램의 시작점
main() 함수는 C 프로그램에서 시작점이다. 즉, C 프로그램을 실행하면 가장 먼저 실행되는 함수가 바로 main()이다.
- int는 반환 타입을 의미한다. main() 함수는 프로그램이 종료될 때 정수값을 반환해야 한다. 일반적으로 0을 반환하면 프로그램이 정상 종료되었음을 나타낸다.
- void는 매개변수가 없음을 의미한다. 이 예제에서는 main() 함수가 값을 입력받지 않도록 설계되어 있다.
int main(void) {
// 프로그램의 시작점
printf("Hello, world!\n");
return 0; // 0을 반환하여 정상 종료
}
3. printf() 함수 - 화면에 출력하기
C 언어에서 출력은 printf() 함수로 한다. 이 함수는 화면에 텍스트나 값을 출력하는 데 사용된다.
- printf("Hello, world!\n");는 문자열을 출력하는 코드이다. 여기서 \n은 줄바꿈을 의미하며, Enter 키를 눌렀을 때와 동일한 효과가 있다.
4. 변수와 데이터 타입
C 언어에서는 변수의 타입을 명확하게 지정해야 한다. 예를 들어, 문자열을 저장할 변수는 string 타입으로 선언해야 한다. C는 타입에 엄격한 언어이기 때문에, 변수에 저장할 데이터의 종류를 정확하게 정의해줘야 한다.
- string answer = get_string("What's your name?\n");는 사용자 입력을 받는 코드이다. 여기서 get_string() 함수는 사용자가 입력한 값을 문자열로 받아 answer 변수에 저장한다.
5. %s와 printf()로 변수 출력하기
C 언어에서는 변수를 출력할 때, 해당 변수의 형식에 맞는 포맷 지정자를 사용해야 한다. 문자열을 출력하려면 printf() 함수에서 %s를 사용한다. 예를 들어, 사용자의 이름을 출력하려면 다음과 같이 작성한다.
string answer = get_string("What's your name?\n");
printf("Hello, %s\n", answer);
- 여기서 %s는 문자열을 출력하기 위한 포맷 지정자이다. answer 변수에 저장된 값을 출력하려면 %s를 사용한다.
6. 컴파일과 실행
C로 작성한 프로그램은 소스 코드로 작성된다. 이 소스 코드는 컴퓨터가 이해할 수 있는 머신 코드로 변환되어야 실행할 수 있다. 이를 위해 컴파일러라는 프로그램을 사용한다.
- 예를 들어, clang hello.c 명령어는 hello.c라는 소스 코드를 컴파일하여 실행 가능한 파일을 만든다.
- 컴파일 후 a.out이라는 실행 파일이 생성되며, 이를 실행하려면 ./a.out 명령어를 입력한다. 여기서 ./는 현재 디렉토리를 의미한다.
컴파일 명령어 예시:
clang -o string string.c -lcs50
- -o string은 string.c를 컴파일하여 string이라는 실행 파일을 생성한다.
- -lcs50은 cs50 라이브러리를 링크하는 옵션이다. 이 라이브러리에는 get_string() 함수와 string 타입이 정의되어 있다.
7. 변수 할당과 출력
C에서는 변수에 값을 할당할 때 = 연산자를 사용한다. 그러나 이때 =는 같다가 아니라 값을 할당하는 의미이다. 예를 들어, 사용자 이름을 입력받아 변수 answer에 저장하려면 get_string() 함수를 사용한다.
string answer = get_string("What's your name?\n");
이렇게 받은 값을 printf() 함수로 출력할 수 있다:
printf("Hello, %s\n", answer);
C 언어는 입력과 출력, 변수 선언, 함수 호출 등의 기본적인 개념을 정확히 이해하는 것이 중요하다. C 언어의 문법은 다소 직관적이지 않을 수 있지만, 하나씩 배워가며 익숙해지면 매우 강력한 도구가 될테니까~ 천천히 기초부터 다져가야겠다☺️.
'IT' 카테고리의 다른 글
CS50 C 언어 기초 정리 | 데이터 타입, 입력 & 출력, 연산자 총정리 (0) | 2025.03.14 |
---|---|
C 프로그래밍 기초 정리 | 변수, 조건문, 반복문 (0) | 2025.03.13 |
ChatGPT와 프롬프트 엔지니어링: 생성형 AI 활용법과 주의사항 (0) | 2025.03.10 |
AI 스타트업 딥시크, 글로벌 기술 시장에 미치는 파급력 (0) | 2025.01.28 |
프리미어 프로에서 오디오 잡음 제거하기 (0) | 2025.01.01 |
댓글
이 글 공유하기
다른 글
-
CS50 C 언어 기초 정리 | 데이터 타입, 입력 & 출력, 연산자 총정리
CS50 C 언어 기초 정리 | 데이터 타입, 입력 & 출력, 연산자 총정리
2025.03.14 -
C 프로그래밍 기초 정리 | 변수, 조건문, 반복문
C 프로그래밍 기초 정리 | 변수, 조건문, 반복문
2025.03.13 -
ChatGPT와 프롬프트 엔지니어링: 생성형 AI 활용법과 주의사항
ChatGPT와 프롬프트 엔지니어링: 생성형 AI 활용법과 주의사항
2025.03.10 -
AI 스타트업 딥시크, 글로벌 기술 시장에 미치는 파급력
AI 스타트업 딥시크, 글로벌 기술 시장에 미치는 파급력
2025.01.28