C언어 기초 Chapter 22~23: 구조체와 사용자 정의 자료형Chapter 22. 구조체와 사용자 정의 자료형 122-1. 구조체란 무엇인가?여러 자료형을 하나로 묶어 새로운 자료형을 정의하는 것하나의 논리적 단위로 표현 가능#include struct Student { char name[20]; int age; double grade;};int main(void) { struct Student s1 = {"Kim", 20, 3.8}; printf("이름: %s\n", s1.name); printf("나이: %d\n", s1.age); printf("학점: %.1f\n", s1.grade); return 0;}22-2. 구조체 배열 그리고 포인터구조체 배열..
C언어 기초 Chapter 21: 문자열과 문자열 관련 함수21-1. 스트링과 데이터의 이해문자열(String): 문자들의 배열 + 마지막에 \0 (널 문자)선언 방법:char str1[6] = {'H','e','l','l','o','\0'};char str2[] = "Hello"; // 자동으로 \0 포함출력 예제:#include int main(void) { char str[] = "Hello"; printf("%s\n", str); return 0;}👉 출력: Hello21-2. 문자열 단일 입력 함수gets (❌ 사용 지양: 안전하지 않음)fgets (✅ 안전한 문자열 입력)#include int main(void) { char str[20]; printf("문자열 ..
C언어 기초 Chapter 19: 함수 포인터와 void 포인터19-1. 함수 포인터와 void 포인터함수 포인터란?함수의 주소를 저장하는 포인터 변수함수도 메모리에 올라가기 때문에 시작 주소가 존재이를 이용해 함수를 변수처럼 전달하거나 동적으로 호출할 수 있음기본 문법반환형 (*포인터이름)(매개변수목록);예제: 함수 포인터 선언과 사용#include int add(int a, int b) { return a + b;}int main(void) { int (*fp)(int, int); // 함수 포인터 선언 fp = add; // 함수 주소 저장 int result = fp(3, 4); // 함수 포인터로 호출 printf("결과 = %d\n", re..
C언어 기초 Chapter 17~18: 다차원 배열과 포인터의 관계 완전 정리Chapter 17. 다차원 배열17-1. 다차원 배열의 이해와 활용2차원 배열 선언int arr[3][4]; // 3행 4열 배열초기화int arr[2][3] = { {1, 2, 3}, {4, 5, 6}};👉 메모리에는 행 순서대로 저장됨2차원 배열 출력#include int main(void) { int arr[2][3] = {{1,2,3},{4,5,6}}; for (int i=0; i출력:1 2 34 5 617-2. 3차원 배열선언 및 초기화int cube[2][2][2] = { {{1,2},{3,4}}, {{5,6},{7,8}}};👉 인덱스로 접근printf("%d\n", cube[1..
C언어 기초 Chapter 16: 포인터의 포인터 (이중 포인터 이해와 활용)16-1. 포인터의 포인터에 대한 이해기본 개념포인터도 변수이므로, 그 포인터의 주소를 저장하는 또 다른 포인터를 만들 수 있음이를 이중 포인터(double pointer) 라고 함선언 방식:int **pp;예제#include int main(void) { int a = 10; int *p = &a; // int형 변수 a를 가리킴 int **pp = &p; // 포인터 p의 주소를 가리킴 printf("a = %d\n", a); printf("*p = %d\n", *p); printf("**pp = %d\n", **pp); return 0;}👉 출력:a = 10*p = 10**..
C언어 기초 Chapter 14: 포인터와 함수 (배열 전달, Call by Value & Reference, const)14-1. 함수의 인자로 배열 전달하기배열 전달 기본함수에 배열을 넘기면, 사실은 배열의 첫 번째 원소 주소가 전달됨따라서 배열 크기 정보는 따로 넘겨줘야 함#include void printArray(int arr[], int size) { for (int i = 0; i 👉 출력: 1 2 3 4 5배열 원소 수정하기#include void addOne(int arr[], int size) { for (int i = 0; i 👉 함수 안에서 배열 값이 실제로 변경됨 (주소 전달 방식이기 때문)14-2. Call by Value vs. Call by ReferenceCa..
C언어 기초 Chapter 13: 포인터와 배열 함께 이해하기13-1. 포인터와 배열의 관계배열과 포인터배열 이름은 사실상 첫 번째 원소의 주소arr 와 &arr[0] 는 같은 의미예제:#include int main(void) { int arr[3] = {10, 20, 30}; int *p = arr; // arr == &arr[0] printf("%d %d\n", arr[0], *p); // 10 10 printf("%d %d\n", arr[1], *(p+1)); // 20 20 printf("%d %d\n", arr[2], *(p+2)); // 30 30 return 0;}👉 배열과 포인터는 밀접하게 연결되어 있음13-2. 포인터 연산포인터에 정수를..
C언어 기초 Chapter 11~12: 배열과 포인터 완전 정리Chapter 11. 1차원 배열11-1. 배열의 선언과 초기화 방법배열이란?같은 자료형 변수를 여러 개 모아 하나의 이름으로 관리하는 것인덱스(index)를 이용해 각 요소 접근선언int arr[5]; // 정수 5개 저장double scores[10]; // 실수 10개 저장초기화int arr1[5] = {1, 2, 3, 4, 5};int arr2[] = {10, 20, 30}; // 크기 생략 가능char str[] = {'H', 'i', '\0'}; // 문자열 배열11-2. 배열을 이용한 문제와 변수의 표현배열 접근#include int main(void) { int arr[5] = {10, 20, 30, 40, 50}..
C언어 기초 Chapter 09: 함수의 정의, 호출, 변수의 범위와 수명09-1. 함수를 정의하고 선언하기함수란?특정 기능을 수행하는 코드 묶음재사용 가능, 코드 가독성 향상, 유지보수 편리기본 구조반환형 함수이름(매개변수목록) { 실행문; return 값;}예제:#include int add(int a, int b) { // 함수 정의 return a + b;}int main(void) { int result = add(3, 5); // 함수 호출 printf("3 + 5 = %d\n", result); return 0;}함수 선언(프로토타입)함수 정의보다 먼저 호출하려면 선언 필요int add(int a, int b); // 함수 선언(프로토타입)int mai..
C언어 기초 Chapter 08: 조건문과 흐름 제어 (if / switch / break & continue / goto)08-1. 조건식 실행과 흐름의 분기 (if문)기본 구조if (조건식) { 실행문;}예제:#include int main(void) { int age = 20; if (age >= 18) { printf("성인입니다.\n"); } return 0;}if ~ elseif (조건식) { 실행문1;} else { 실행문2;}예제:int num = -5;if (num > 0) { printf("양수\n");} else { printf("음수 또는 0\n");}다중 if ~ else if ~ elseif (score >= 90) p..
C언어 기초 Chapter 07: 반복문 while / do~while / for 완전 정리07-1. while문을 이용한 문장의 반복기본 구조while (조건식) { 반복 실행할 문장;}조건식이 참(true) 이면 블록 실행조건식이 거짓(false) 이면 반복 종료예제:#include int main(void) { int i = 1; while (i 👉 출력: 1 2 3 4 5무한 루프while (1) { printf("무한 반복!\n"); break; // 특정 조건에서 탈출 필요}⚠️ while(1) 은 종료 조건을 따로 만들어줘야 함07-2. do~while문을 이용한 문장의 반복기본 구조do { 반복 실행할 문장;} while (조건식);최소 1번은 무조건 실..
C언어 기초 Chapter 06: printf 함수와 scanf 함수 완전 정복06-1. printf 함수 이야기1) 기본 사용법printf는 화면에 값을 출력하는 함수입니다.#include int main(void) { printf("Hello C!\n"); printf("정수: %d\n", 10); printf("실수: %f\n", 3.14); printf("문자: %c\n", 'A'); printf("문자열: %s\n", "Hello"); return 0;}%d → 정수 출력%f → 실수 출력 (기본 6자리 소수)%c → 문자 1개%s → 문자열\n → 줄바꿈2) 출력 형식 지정자 (Format Specifier)정수%d 10진수%o 8진수%x, %X 16진수실수%f..

