if(조건)
printf("참이다.")
else
print("거짓이다.")
if문 뒤에 실행할 문장이 하나일 경우에는 중괄호를 생략할 수 있다.
for(변수 초기화; 조건; 변수 값 변경) {
...
}
while(i <=100) {
...
}
do {
...
} while(조건)
함수는 특정 기능을 수행하도록 만들어진 프로그램 단위로, 시스템 함수
와 사용자 함수
가 있다.
시스템 함수는 언어에서 자체적으로 제공하는 기능(printf
등)을 뜻하고 사용자 함수는 프로그래머가 필요에 의해 만든 함수로, 재 사용을 염두에 두고 만든 것을 뜻한다.
function_name() {
}
// or
void function_name(void) {
}
main()
{
}
리턴이나 매개 변수 모두 없는 경우, 괄호를 비워두거나 void
를 입력할 수 있다. 리턴 타입이 만약 정수형이라면 함수명 앞에 int
를 붙여주면 된다.
함수는 실행의 중심이 되는 main
함수 이전에 실행해야 정상적으로 동작한다.
C언어에는 랜덤 값을 생성해 주는 함수가 있다. rand()
라는 함수를 이용할 수 있는데, 이 함수를 실행할 때마다 다른 값을 출력한다. srand()
라는 함수를 실행하고 시드를 정의해 주면 매번 같은 값을 출력해 준다.
int age[5] = { 14, 123, 213, 410, 4132939 }
배열을 지정할 때는 타입 변수명[크기] = { ... }
라는 구조로 선언해 준다. 초기값을 정해주는 경우에는 크기를 생략해주어도 된다.
char name[] = "name name"
캐릭터, 즉 한 글자가 아니라 문자열을 선언하고 싶을 때도 배열과 같은 방식으로 선언한다.
C언어에도 문자열을 쉽게 다루기 위한 함수들이 존재한다.
문자열 길이: len
문자열 비교: comp
문자열 연결: concat
문자열 일부 반환: sub
이러한 함수들을 사용하기 위해서는 라이브러리를 설치해 주어야 한다.
#include <string.h>
main() {
char a[] = "hi, hello.";
char b[] = "good morning";
char c[50] = "";
printf("%d", strlen(a));
strcat(c, a); // c에 a를 붙임
}
탐색: strstr
특정 문자열 안에 문자열이 있는지 확인한다.
#include <string.h>
main() {
char a[] = "hi, hello.";
char b[] = "hell";
*char f; // 포인터 변수의 주소값을 저장하는 변수다.
f = strstr(a, b);
if(f != NULL) {
printf("Found\n");
} else {
printf("Not Found\n");
}
}
포인터 선언: 자료형*포인터이름
C언어의 구조체는 객체 지향 프로그래밍의 원시 모델 형식으로 변수들을 묶어 하나의 타입으로 사용할 수 있는 기능이다.
struct car {
int doors; // car.doors
int seats; // car.seats
char grade; // car.grade
}
struct car my_car
지금까지 해본 언어는 자바스크립트와 파이썬(약간)이 전부였는데, 둘 다 동적 타입 언어라 C언어 같은 정적 타입 언어는 처음이라 좀 헷갈리는 부분이 있었다. 특히 세미콜론 붙이는 걸 계속 잊는다. 자바스크립트는 알아서 붙여주는데 취준하면서 틈틈이 공부해 봐야겠다.