온라인 C 컴파일러

C 코드를 온라인에서 실행하고 디버그하세요. 브라우저 기반으로 간편하게, 테스트 및 학습에 최적화된 CLI 환경 지원.

🚀 365,346 총 실행 (45,056 이번 달)

Udemy Logo 👨‍💻 실무에 강해지는 C/C++ 추천 강의

Loading...

🧩 이 C 온라인 실행기 소개

CodeUtility C 실행기는 브라우저에서 바로 C 프로그램을 작성하고 실행할 수 있게 해 줍니다 — 설치나 컴파일러 설정이 필요 없습니다. 실제 C 표준을 지원하는 안전한 샌드박스로 구동되며, C89, C99, C11, 그리고 최신 버전까지 지원합니다.

클라우드에서 동작하는 실제 C 컴파일러를 사용하여, 네이티브 환경처럼 코드를 컴파일하고 실행합니다. 간단한 스니펫을 테스트하고, 문법을 익히거나, 입력과 출력을 포함한 완전한 프로그램 작성을 연습할 수 있습니다.

이 도구는 학습자와 개발자가 컴파일러나 IDE를 설치하지 않고도 데이터 타입, 포인터, 반복문, 함수, 배열, 구조체 같은 C의 기본을 빠르게 실험해 볼 수 있도록 설계되었습니다.

⚙️ 이 도구 사용 방법

  • 1. 에디터 상단의 드롭다운에서 C 버전(C89, C99, C11, 또는 최신)을 선택하세요.
  • 2. 에디터 영역에 C 코드를 작성하거나 붙여넣기 하세요.
  • 3. 실행을 클릭하면 프로그램이 컴파일되고 실행됩니다 — 출력은 아래 콘솔에 표시됩니다.
  • 4. 실행 중에는 중지 버튼이 나타납니다 — 일찍 실행을 멈추려면 클릭하세요.
  • 5. 코드 고치기로 사소한 서식 또는 문법 문제를 자동으로 수정하세요.
  • 6. 수정 후에는 수정 내역 버튼이 나타납니다 — 클릭해 최근 수정 내용을 확인하세요.
  • 7. 업로드 버튼으로 로컬 파일에서 코드를 가져오거나, 다운로드 버튼으로 에디터의 현재 코드를 저장하세요.
  • 8. 각 실행은 최대 20초 동안 수행된 뒤 자동으로 종료됩니다.

🧠 팁: 이 환경은 브라우저에서 안전하게 실제 C 코드를 실행합니다 — 로그인이나 로컬 설정이 필요 없습니다.

💡 위에서 바로 시도해 볼 수 있는 C 기초 & 예제

1. 변수와 상수 선언

C에서는 각 변수의 타입을 선언해야 합니다. 읽기 전용 값을 정의하려면 #define 또는 const를 사용하세요.

int age = 30;
double pi = 3.14159;
char grade = 'A';
char name[] = "Alice";
bool isActive = 1; // 참

// 상수
#define MAX_USERS 100
const char* COMPANY = "CodeUtility";

2. 조건문 (if / switch)

분기 처리를 위해 if, else if, switch를 사용하세요.

int x = 2;
if (x == 1) {
    printf("하나\n");
} else if (x == 2) {
    printf("둘\n");
} else {
    printf("기타\n");
}

switch (x) {
    case 1:
        printf("하나\n");
        break;
    case 2:
        printf("둘\n");
        break;
    default:
        printf("기타\n");
}

3. 반복문

for, while, do-while을 사용해 반복을 처리합니다.

for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

int n = 3;
while (n > 0) {
    printf("%d\n", n);
    n--;
}

4. 배열

배열은 같은 타입의 여러 요소를 저장합니다.

int numbers[3] = {10, 20, 30};
printf("%d\n", numbers[1]);

5. 구조체

struct는 관련된 데이터를 묶을 수 있게 해줍니다.

struct Person {
    char name[50];
    int age;
};

struct Person p = {"Alice", 30};
printf("%s는 %d살입니다\n", p.name, p.age);

6. 콘솔 입력/출력

printfscanf로 콘솔 I/O를 수행합니다.

char name[50];
printf("이름을 입력하세요: ");
scanf("%s", name);
printf("안녕하세요, %s\n", name);

7. 함수

함수는 재사용 가능한 로직을 캡슐화합니다. 반환 타입, 이름, 매개변수를 선언하세요.

int add(int a, int b) {
    return a + b;
}

printf("%d\n", add(3, 4));

8. 포인터

포인터는 메모리 주소를 저장하고 간접적으로 데이터를 조작할 때 사용합니다.

int x = 10;
int* ptr = &x;

printf("x의 값: %d\n", x);
printf("x의 주소: %p\n", ptr);
printf("포인터로 읽은 값: %d\n", *ptr);

*ptr = 20;
printf("업데이트된 x: %d\n", x);

9. 파일 입출력

fopen, fprintf, fscanf, fclose로 파일 작업을 수행합니다.

FILE* file = fopen("file.txt", "w");
fprintf(file, "안녕, 파일");
fclose(file);

char line[100];
file = fopen("file.txt", "r");
fgets(line, sizeof(line), file);
printf("%s", line);
fclose(file);

10. 문자열 처리

<string.h>strlen, strcpy, strcmp 같은 함수를 사용하세요.

#include <string.h>

char text[] = "안녕";
char copy[10];

strcpy(copy, text);
printf("길이: %lu\n", strlen(copy));
printf("비교: %d\n", strcmp(copy, "안녕"));

11. 동적 메모리

힙 할당에는 mallocfree를 사용하세요.

int* nums = (int*) malloc(3 * sizeof(int));
nums[0] = 1; nums[1] = 2; nums[2] = 3;

for (int i = 0; i < 3; i++) {
    printf("%d ", nums[i]);
}

free(nums);