Learn C Programming
program āĻāϏāϞ⧠āĻā§, āϏā§āĻāĻžāύ āĻĨā§āĻā§ āĻļā§āϰā§āĨ¤ āϤāĻžāϰāĻĒāϰ variable, decision āĻāϰ loop, āĻāĻā§ āĻāĻā§ array, pointer āĻāϰ memoryāĨ¤
- Lesson
- ā§§ā§Ēā§Ē
- Module āĻŦā§āϰāĻŋāϝāĻŧā§āĻā§
- ā§§ā§Ž / ā§§ā§Ž
- Part
- ā§Ģ
āĻā§ āĻā§āύāĻāĻž āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§āύ
- Free ¡ ā§Ēā§
- āϝ⧠āĻā§āĻ āĻĒā§āϤ⧠āĻĒāĻžāϰāĻŦā§āύ, login āĻāĻžā§āĻžāĻāĨ¤
- Account āĻĨāĻžāĻāϞā§āĻ free ¡ ā§Ģ⧝
- Account āĻĨāĻžāĻāϞ⧠āĻĒā§āĻž freeāĨ¤
- Pro ¡ ā§Šā§Ž
- āĻāĻ track āĻ āĻŦāĻž Learn Pro āϤ⧠āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧāĨ¤
Learn Pro
āϏāĻŦ track, āĻāĻāĻāĻžāĻ subscription
āϏāĻŦ track āĻāϰ Pro lesson āĻāϰ project
āĻŦāĻāϰ⧠⧺ā§Ŧ,⧝⧝⧝
card āĻ: āĻŽāĻžāϏ⧠$9, āĻŦāĻž āĻŦāĻāϰ⧠$59āĨ¤
āĻā§āϤāϰ⧠āĻā§ āĻāĻā§
ā§Ģ āĻāĻž part āĻ ā§§ā§Ž āĻāĻž module, āĻāϰ āĻŽāϧā§āĻ¯ā§ ā§§ā§Ž āĻāĻž āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ āĻŦā§āϰāĻŋāϝāĻŧā§āĻā§āĨ¤ āϝ⧠lesson āĻ āĻā§āύ⧠āĻāĻŋāĻšā§āύ āύā§āĻ, āϏā§āĻāĻž āĻĒāĻĄāĻŧāĻž freeāĨ¤
Part Zero
āĻāĻ āϞāĻžāĻāύ code āϞā§āĻāĻžāϰ āĻāĻā§
- ā§§Programming āĻāϏāϞ⧠āĻā§āĻĒāĻĄāĻŧāĻž
- ⧍AI āϝāĻāύ code āϞāĻŋāĻā§ āĻĻā§āϝāĻŧ, āϤāĻāύ C āĻļāĻŋāĻāĻŦ āĻā§āύāĻĒāĻĄāĻŧāĻž
- ā§ŠC-āϰ āĻāϞā§āĻĒ: Bell Labs-āϰ āĻāĻ āĻāϰ āĻĨā§āĻā§ āϤā§āĻŽāĻžāϰ āĻĢā§āύ āĻĒāϰā§āϝāύā§āϤāĻĒāĻĄāĻŧāĻž
- ā§ĒCompiler, interpreter, āĻāϰ Run āĻāĻžāĻĒāϞ⧠āĻā§āϤāϰ⧠āϝāĻž āĻāĻā§āĻĒāĻĄāĻŧāĻž
- ā§ĢāĻāĻāĻā§āϰ āĻĻāĻŋāύ⧠C āĻāϞāĻā§ āĻā§āĻĨāĻžāϝāĻŧ: āϤā§āĻŽāĻŋ āϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŽāύ āĻāϝāĻŧāĻāĻž āϏāĻŋāϏā§āĻā§āĻŽāĻĒāĻĄāĻŧāĻž
- ā§ŦStructured āĻāϰ object oriented: program āϏāĻžāĻāĻžāύā§āϰ āĻĻā§āĻ āϰāĻžāϏā§āϤāĻžāĻĒāĻĄāĻŧāĻž
- ā§Module test: āĻāĻ āϞāĻžāĻāύ code āϞā§āĻāĻžāϰ āĻāĻā§Module test
- ā§§āϤā§āĻŽāĻžāϰ āĻĒā§āϰāĻĨāĻŽ C program, āϞāĻžāĻāύ āϧāϰ⧠āϧāϰā§āĻĒāĻĄāĻŧāĻž
- ⧍Syntax āĻāϰ semantics: āĻā§āϞ āĻšāĻāϝāĻŧāĻžāϰ āĻĻā§āĻ āϰāĻāĻŽāĻĒāĻĄāĻŧāĻž
- ā§ŠāĻāĻŋāĻšā§āύā§āϰ āĻ āĻāĻŋāϧāĻžāύ: C-āϰ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻžāĻāύ āĻā§ āĻŦāϞā§āĻĒāĻĄāĻŧāĻž
- ā§ĒāĻĒā§āϰ⧠ASCII āĻā§āĻŦāĻŋāϞ, ā§§ā§¨ā§ŽāĻāĻž āϏāĻžāϰāĻŋāĻāĻĒāĻĄāĻŧāĻž
- ā§ĢComment, whitespace āĻāϰ āĻŽāĻžāύā§āώā§āϰ āĻĒāĻĄāĻŧāĻžāϰ āĻŽāϤ⧠codeāĻĒāĻĄāĻŧāĻž
- ā§ŦāύāĻŋāĻā§ compile āĻāϰ⧠āĻāĻžāϞāĻžāĻ: Playground āĻāϰ āύāĻŋāĻā§āϰ āĻŽā§āĻļāĻŋāύā§āϰ toolchaināĻĒāĻĄāĻŧāĻž
- ā§Problem: āĻĒā§āϰāĻĨāĻŽ program-āĻā§āϞā§Problem
- ā§ŽModule test: C-āϰ āϏāĻā§āĻā§ āĻĒāϰāĻŋāĻāϝāĻŧModule test
Part One
āĻāĻžāώāĻžāĻāĻž, āĻāĻ āĻā§āĻāϰ⧠āĻāϰā§
- ā§§Variable: memory-āϤ⧠āύāĻžāĻŽ āϞā§āĻāĻž āĻŦāĻžāĻā§āϏāĻĒāĻĄāĻŧāĻž
- ⧍Integer type, āϤāĻžāĻĻā§āϰ range āĻāϰ overflowāĻĒāĻĄāĻŧāĻž
- ā§ŠFloating point: float, double, āĻāϰ 0.1 āĻā§āύ āĻ āĻŋāĻ 0.1 āύāϝāĻŧāĻĒāĻĄāĻŧāĻž
- ā§ĒChar, bool, āĻāϰ āϝ⧠type-āĻā§āϞ⧠āĻāϏāϞ⧠āϏāĻāĻā§āϝāĻžāĻĒāĻĄāĻŧāĻž
- ā§ĢSizeof āĻāϰ limits.h: āĻāύā§āĻĻāĻžāĻ āύāĻž āĻāϰ⧠āĻŽā§āĻļāĻŋāύāĻā§ āĻāĻŋāĻā§āĻā§āϏ āĻāϰāĻžāĻĒāĻĄāĻŧāĻž
- ā§ŦProblem: variable āĻāϰ typeProblem
- ā§Module test: variable āĻāϰ data typeModule test
- ā§§āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ āĻāϰ literal: āύāĻžāĻŽ āĻĒāĻžāĻāϝāĻŧāĻž āĻŽāĻžāύāĻĒāĻĄāĻŧāĻž
- ⧍Const āĻāϰ volatile: compiler-āĻā§ āĻĻā§āĻāϝāĻŧāĻž āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋāĻĒāĻĄāĻŧāĻž
- ā§ŠPrintf: format specifier, width āĻāϰ precisionāĻĒāĻĄāĻŧāĻž
- ā§ĒScanf: āĻŽāĻžāĻĨāĻž āύāĻž āĻāĻžāϰāĻžāĻĒ āĻāϰ⧠āĻāύāĻĒā§āĻ āύā§āĻāϝāĻŧāĻžāĻĒāĻĄāĻŧāĻž
- ā§ĢāĻāύāĻĒā§āĻ āĻā§āϞ āĻāϞā§: āϝāĻž āĻĒāĻĄāĻŧāϞ⧠āϤāĻž āϝāĻžāĻāĻžāĻ āĻāϰāĻžāĻĒāĻĄāĻŧāĻž
- ā§ŦProblem: āĻĒāĻĄāĻŧāĻž āĻāϰ āĻāĻžāĻĒāĻžāύā§Problem
- ā§Module test: āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ, āĻāύāĻĒā§āĻ āĻāϰ āĻāĻāĻāĻĒā§āĻModule test
- ā§§Arithmetic, integer division āĻāϰ modulo-āϰ āĻĢāĻžāĻāĻĻāĻĒāĻĄāĻŧāĻž
- ⧍Relational āĻāϰ logical operator, āĻāϰ short circuitāĻĒāĻĄāĻŧāĻž
- ā§ŠAssignment-āϰ āĻļāϰā§āĻāĻāĻžāĻ, ++ āĻāϰ --āĻĒāĻĄāĻŧāĻž
- ā§ĒBitwise operator: āĻāĻ āĻŦāĻŋāĻ āĻāϰ⧠āĻāĻžāĻāĻĒāĻĄāĻŧāĻž
- ā§ĢPrecedence āĻāϰ associativity: āĻāĻāύ bracket āĻĻā§āĻŦā§āĻĒāĻĄāĻŧāĻž
- ā§ŦType conversion: promotion, casting āĻāϰ āĻā§āĻĒāĻāĻžāĻĒ āĻšāĻžāϰāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻž āĻŽāĻžāύāĻĒāĻĄāĻŧāĻž
- ā§Problem: āϝ⧠expression āĻāĻžāĻŽāĻĄāĻŧ āĻĻā§āϝāĻŧProblem
- ā§ŽModule test: operatorModule test
Part Two
Control, function āĻāϰ recursion
- ā§§If, else if, else: āĻĒāĻĨ āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻžāĻĒāĻĄāĻŧāĻž
- ⧍Nested condition āĻāϰ āĻā§āϞ⧠āĻĨāĻžāĻāĻž elseAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠSwitch, case āĻāϰ fall throughAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒTernary operator, āĻāϰ āϝ⧠āĻļāϰā§āϤā§āϰ āĻāĻāĻāĻž āύāĻžāĻŽ āĻĻā§āĻāϝāĻŧāĻž āĻāĻāĻŋāϤAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢāĻā§āϤāϰā§āϰ āĻāĻĨāĻž: āĻāĻāĻāĻž branch āĻā§āĻāĻžāĻŦā§ jump āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧProāĻĒāĻĄāĻŧāĻž
- ā§ŦProblem: āϏāĻŋāĻĻā§āϧāĻžāύā§āϤAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§Module test: āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āĻāϝāĻŧāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§While: āĻŦāĻžāϰāĻŦāĻžāϰ āĻāϰāĻžāϰ āϧāĻžāϰāĻŖāĻžāĻĒāĻĄāĻŧāĻž
- ⧍For: init, condition, update, āϧāĻžāĻĒā§ āϧāĻžāĻĒā§Account āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠDo while: āϝ⧠loop āĻ āύā§āϤāϤ āĻāĻāĻŦāĻžāϰ āĻāϞāĻŦā§āĻAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒBreak, continue, āĻāϰ āϝ⧠goto āϤā§āĻŽāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§ āύāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢNested loop, grid āĻāϰ patternAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦLoop-āĻ āĻāĻŋāύā§āϤāĻž āĻāϰāĻž: āϝā§āĻāĻĢāϞ, āĻ āĻā§āĻ, āĻŽā§āϞāĻŋāĻ āϏāĻāĻā§āϝāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§Bug gallery: āĻāĻ āĻāϰ āĻāĻĻāĻŋāĻ āĻāĻĻāĻŋāĻ, āĻ āϏā§āĻŽ loop āĻāϰ āĻšāĻžāϰāĻžāύ⧠braceProāĻĒāĻĄāĻŧāĻž
- ā§ŽProblem: loopAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ⧝Module test: loopAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§Function: āĻāĻ āĻā§āĻāϰ⧠āĻāĻžāĻāĻā§ āĻāĻāĻāĻž āύāĻžāĻŽ āĻĻā§āĻāϝāĻŧāĻžāĻĒāĻĄāĻŧāĻž
- ⧍Parameter, return value āĻāϰ prototypeAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠPass by value: function āĻāϏāϞ⧠āĻā§ āĻĒāĻžāϝāĻŧAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒScope: āĻāĻāĻāĻž āύāĻžāĻŽ āĻŦāĻžāĻāĻā§ āĻā§āĻĨāĻžāϝāĻŧAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢStorage class: auto, static, extern, registerAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦāĻāύā§āĻāĻžāϰāĻāĻŋāĻ āĻā§āĻŖ: side effect, pure function āĻāϰ āĻā§āϏā§āĻ āĻāϰāĻžāϰ āϏā§āĻŦāĻŋāϧāĻžProāĻĒāĻĄāĻŧāĻž
- ā§Problem: functionAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§ŽModule test: functionAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§Recursion: āϝ⧠function āύāĻŋāĻā§āĻā§āĻ call āĻāϰā§āĻĒāĻĄāĻŧāĻž
- ⧍Call stack, āĻāĻ frame āĻāϰā§Account āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠRecursion-āĻāϰ pattern: factorial, Fibonacci, āĻ āĻā§āĻ āĻāĻžāĻāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒRecursion āύāĻžāĻāĻŋ loop: āϏā§āĻāĻžāĻŦā§ āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢāĻā§āϤāϰā§āϰ āĻāĻĨāĻž: stack frame, tail call āĻāϰ stack overflowProāĻĒāĻĄāĻŧāĻž
- ā§ŦProblem: recursionAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§Module test: recursionAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
Part Three
Memory āĻāϰ data
- ā§§Array: āĻ āύā§āĻ āĻŦāĻžāĻā§āϏ, āĻāĻāĻāĻžāĻ āύāĻžāĻŽāĻĒāĻĄāĻŧāĻž
- ⧍Array āĻā§āϰāĻžāϰ pattern: āϝā§āĻāĻĢāϞ, āϏāϰā§āĻŦā§āĻā§āĻ, āĻāĻŖāύāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠāĻā§āĻāĻāĻž āĻāϰ āĻā§ āĻāϤāĻŦāĻžāϰ āĻāĻā§ āĻā§āύāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒāĻĻā§āĻŦāĻŋāĻŽāĻžāϤā§āϰāĻŋāĻ array āĻāϰ gridAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢFunction-āĻ array āĻĒāĻžāĻ āĻžāύā§Account āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦBug gallery: āϏā§āĻŽāĻžāϰ āĻŦāĻžāĻāϰ⧠āĻāϰ āĻā§āĻĒāĻāĻžāĻĒ āϞāĻŋāĻā§ āĻĢā§āϞāĻžProāĻĒāĻĄāĻŧāĻž
- ā§Problem: arrayAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§ŽProject: āĻāĻžāĻāĻāĻž āύāĻŽā§āĻŦāϰ āĻĨā§āĻā§ āϰā§āĻāĻžāϞā§āĻ reportProāĻĒāĻĄāĻŧāĻž
- ⧝Module test: arrayAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§Character, ASCII āĻāϰ āĻāĻžāĻā§āϰ āĻŽāϧā§āϝ⧠char typeāĻĒāĻĄāĻŧāĻž
- ⧍String: āϝ⧠array āĻļā§āύā§āϝ āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻšāϝāĻŧAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠāύāĻŋāϰāĻžāĻĒāĻĻā§ string āĻĒāĻĄāĻŧāĻž: fgets, āĻāϰ gets āĻā§āύ āĻŦāĻžāĻĻ āĻĒāĻĄāĻŧāϞAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒString.h: strlen, strcpy, strcmp, strcatAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢString Problem: palindrome, āĻļāĻŦā§āĻĻ, āĻā§āĻ āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦāĻā§āϤāϰā§āϰ āĻāĻĨāĻž: string literal āĻāϏāϞ⧠āĻĨāĻžāĻā§ āĻā§āĻĨāĻžāϝāĻŧProāĻĒāĻĄāĻŧāĻž
- ā§Problem: stringAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§ŽProject: āϏāϤā§āϝāĻŋāĻāĻžāϰā§āϰ āϞā§āĻāĻž āϏāĻžāĻŽāϞāĻžāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŽāύ word counterProāĻĒāĻĄāĻŧāĻž
- ⧝Module test: stringAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§Memory āĻāϰ āĻ āĻŋāĻāĻžāύāĻž: āĻĒā§āϰāϤāĻŋāĻāĻž āĻŦāĻžāĻā§āϏā§āϰ āĻāĻāĻāĻž āύāĻŽā§āĻŦāϰ āĻāĻā§āĻĒāĻĄāĻŧāĻž
- ⧍Pointer: āϝ⧠variable āĻ āĻŋāĻāĻžāύāĻž āϧāϰ⧠āϰāĻžāĻā§Account āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠPointer āĻāϰ array: āĻĒā§āϰāĻžāϝāĻŧ āĻāĻāĻ āĻāĻŋāύāĻŋāϏ, āϤāĻŦā§ āĻ āĻŋāĻ āύāϝāĻŧAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒPass by reference: function-āĻā§ āϤā§āĻŽāĻžāϰ variable āĻŦāĻĻāϞāĻžāϤ⧠āĻĻā§āĻāϝāĻŧāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢPointer arithmetic, āĻāϰ const-āϰ āϤāĻŋāύ āĻāĻžāϝāĻŧāĻāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦFunction pointer: āĻāĻāϰāĻŖāĻāĻžāĻā§āĻ āĻšāĻžāϤāĻŦāĻĻāϞ āĻāϰāĻžProāĻĒāĻĄāĻŧāĻž
- ā§Bug gallery: NULL, dangling āĻāϰ wild pointerProāĻĒāĻĄāĻŧāĻž
- ā§ŽProblem: pointerAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ⧝Project: āĻļā§āϧ⧠pointer āĻĻāĻŋāϝāĻŧā§ swap, sort āĻāϰ searchProāĻĒāĻĄāĻŧāĻž
- ā§§ā§ĻModule test: pointerAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§struct: āϝ⧠āϤāĻĨā§āϝāĻā§āϞ⧠āĻāĻāϏāĻā§āĻā§ āĻĨāĻžāĻā§, āϤāĻžāĻĻā§āϰ āĻāĻ āĻāϰāĻžāĻĒāĻĄāĻŧāĻž
- ⧍struct-āĻāϰ array, āĻāϰ function-āĻ structAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§Šstruct-āĻāϰ pointer āĻāϰ arrow operatorAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§Ētypedef, nested struct āĻāϰ program āĻā§āĻāĻŋāϝāĻŧā§ āϰāĻžāĻāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§Ģunion āĻāϰ enum: āĻā§āύāĻāĻž āĻāĻāύ āĻŽāĻžāύāĻžāϝāĻŧAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦāĻā§āϤāϰā§āϰ āĻāĻĨāĻž: padding, alignment āĻāϰ sizeof-āĻāϰ āĻāĻŽāĻProāĻĒāĻĄāĻŧāĻž
- ā§Problem: structureAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§ŽProject: memory-āϤ⧠āĻāĻāĻāĻž library catalogueProāĻĒāĻĄāĻŧāĻž
- ⧝Module test: structureAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§File: program āĻļā§āώ āĻšāϞā§āĻ data āϝā§āύ āĻĨāĻžāĻā§āĻĒāĻĄāĻŧāĻž
- ⧍Text file āĻĒāĻĄāĻŧāĻž āĻāϰ āϞā§āĻāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§Šfprintf, fscanf āĻāϰ āϏāĻžāĻāĻžāύ⧠file input outputAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒBinary file, fread āĻāϰ fwriteAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢEOF, error, āĻāϰ āϝāĻž āĻā§āϞā§āĻ āϤāĻž āĻŦāύā§āϧ āĻāϰāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦāĻāύā§āĻāĻžāϰāĻāĻŋāĻ āĻā§āĻŖ: buffering, flush āĻāϰ āϝ⧠output āĻšāĻžāĻāϝāĻŧāĻž āĻšāϝāĻŧā§ āĻā§āϞProāĻĒāĻĄāĻŧāĻž
- ā§Problem: fileAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§ŽProject: log file āĻĒāĻĄāĻŧā§ report āĻŦāĻžāύāĻžāύā§ProāĻĒāĻĄāĻŧāĻž
- ⧝Module test: fileAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
- ā§§Dynamic memory āĻā§āύ: āϝ⧠āĻŽāĻžāĻĒāĻāĻž āĻāĻā§ āĻĨā§āĻā§ āĻāĻžāύāĻž āύā§āĻāĻĒāĻĄāĻŧāĻž
- ⧍malloc, calloc, realloc āĻāϰ freeAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŠProgram āĻāϞāϤ⧠āĻāϞāϤ⧠array āĻŦāĻĄāĻŧ āĻāϰāĻžAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĒHeap-āĻ struct, āĻāϰ āĻļā§āώ⧠āĻāĻāĻāĻž linked listAccount āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ĢLeak, double free, āĻāϰ āϝ⧠tool āĻāĻā§āϞ⧠āϧāϰ⧠āĻĢā§āϞā§Account āĻĨāĻžāĻāϞā§āĻ freeāĻĒāĻĄāĻŧāĻž
- ā§ŦāĻā§āϤāϰā§āϰ āĻāĻĨāĻž: malloc āĻāϏāϞ⧠operating system-āĻāϰ āĻāĻžāĻā§ āĻā§ āĻāĻžāϝāĻŧProāĻĒāĻĄāĻŧāĻž
- ā§Problem: dynamic memoryAccount āĻĨāĻžāĻāϞā§āĻ freeProblem
- ā§ŽProject: āĻāĻžāĻšāĻŋāĻĻāĻžāĻŽāϤ⧠āĻŦāĻĄāĻŧ āĻšāĻāϝāĻŧāĻž contact listProāĻĒāĻĄāĻŧāĻž
- ⧝Module test: dynamic memoryAccount āĻĨāĻžāĻāϞā§āĻ freeModule test
Part Four
āĻŦāĻžāϏā§āϤāĻŦ āĻĻā§āύāĻŋāϝāĻŧāĻžāϰ C
- ā§§Preprocessor: compiler-āĻāϰ āĻāĻā§ āϝāĻž āĻāĻā§ProāĻĒāĻĄāĻŧāĻž
- ⧍Macro: define, function macro āĻāϰ āϤāĻžāĻĻā§āϰ āĻĢāĻžāĻāĻĻProāĻĒāĻĄāĻŧāĻž
- ā§ŠHeader file: declaration, guard āĻāϰ āĻā§āύāĻāĻž āĻā§āĻĨāĻžāϝāĻŧ āĻĨāĻžāĻāĻŦā§ProāĻĒāĻĄāĻŧāĻž
- ā§ĒMulti file build: compile, link āĻāϰ āĻĒā§āϰāĻĨāĻŽ MakefileProāĻĒāĻĄāĻŧāĻž
- ā§ĢStatic āĻāϰ shared library, āĻāϰ āĻ āύā§āϝā§āϰ code link āĻāϰāĻžProāĻĒāĻĄāĻŧāĻž
- ā§ŦProblem: āĻā§āĻāϰ⧠āĻā§āĻĄāĻŧā§ program āĻŦāĻžāύāĻžāύā§ProProblem
- ā§Project: āĻāĻ file-āĻā§ āϏāϤā§āϝāĻŋāĻāĻžāϰā§āϰ project-āĻ āĻāĻžāĻ āĻāϰāĻžProāĻĒāĻĄāĻŧāĻž
- ā§ŽModule test: preprocessor āĻāϰ buildProModule test
- ā§§Undefined behaviour: āϝ⧠āύāĻŋāϝāĻŧāĻŽāĻā§āϞ⧠āύāĻž āĻā§āύā§āĻ āĻāĻžāĻāĻāĻŋāϞā§ProāĻĒāĻĄāĻŧāĻž
- ⧍Debugging: printf, gdb, sanitizer āĻāϰ āĻāĻāĻāĻž āĻĒāĻĻā§āϧāϤāĻŋProāĻĒāĻĄāĻŧāĻž
- ā§ŠāϏāϤā§āϝāĻŋāĻāĻžāϰā§āϰ C āĻĒāĻĄāĻŧāĻž: SQLite-āĻāϰ code-āĻ āĻāĻ āĻāĻā§āĻāϰProāĻĒāĻĄāĻŧāĻž
- ā§ĒC99 āĻĨā§āĻā§ C23: āĻā§ āĻŦāĻĻāϞāĻžāϞ, āĻāĻ āĻā§āύāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§ProāĻĒāĻĄāĻŧāĻž
- ā§ĢStyle, warning āĻāϰ āĻāĻŽāύ C āϞā§āĻāĻž āϝāĻž āĻ āύā§āϝāϰāĻž āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻāϰā§ProāĻĒāĻĄāĻŧāĻž
- ā§ŦProblem: bug-āĻāĻž āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰā§ProProblem
- ā§Project: āĻĻā§āĻāϤ⧠āĻ āĻŋāĻ, āĻāϏāϞ⧠āĻā§āϞ āĻāĻŽāύ program āϏāĻžāϰāĻžāύā§ProāĻĒāĻĄāĻŧāĻž
- ā§ŽModule test: āĻŦāĻžāϏā§āϤāĻŦ āĻĻā§āύāĻŋāϝāĻŧāĻžāϰ CProModule test
- ā§§āĻāĻā§āĻāĻŋāύāĻŋāϝāĻŧāĻžāϰā§āϰ āĻŽāϤ⧠āĻāĻžāĻ āĻāϰāĻž: plan, āĻŦāĻžāύāĻžāĻ, test, āĻāĻŦāĻžāϰProāĻĒāĻĄāĻŧāĻž
- ⧍C-āϰ āĻĒāϰ āĻā§āύ āĻĻāĻŋāĻā§ āϝāĻžāĻŦā§ProāĻĒāĻĄāĻŧāĻž
- ā§ŠProject āĻāĻ: āϞā§āĻāĻžāϰ āĻĒāϰāĻŋāϏāĻāĻā§āϝāĻžāύ āĻŦā§āϰ āĻāϰāĻžāϰ toolProāĻĒāĻĄāĻŧāĻž
- ā§ĒProject āĻĻā§āĻ: file-āĻ save āĻšāĻāϝāĻŧāĻž contact bookProāĻĒāĻĄāĻŧāĻž
- ā§ĢProject āϤāĻŋāύ: āĻā§āĻā§āĻ āĻāĻāĻāĻž expression interpreterProāĻĒāĻĄāĻŧāĻž
Learn Pro
āϏāĻŦ track, āĻāĻāĻāĻžāĻ subscription
āϏāĻŦ track āĻāϰ Pro lesson āĻāϰ project
āĻŦāĻāϰ⧠⧺ā§Ŧ,⧝⧝⧝
card āĻ: āĻŽāĻžāϏ⧠$9, āĻŦāĻž āĻŦāĻāϰ⧠$59āĨ¤
Certificate
Certificate āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§
Lesson āĻļā§āώ āĻāϰāϞā§āĻ certificate āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧ āĻāĻāĻāĻž Skill Test āĻāϰ āĻāĻĒāϰāĨ¤
Skill Test āĻā§āϞāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž track āĻ āĻĒā§āϰāĻĨāĻŽ attempt free, āĻāϰ āϤāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻž score āĻāϰ band āĻĒāĻžāĻŦā§āύ, āϝā§āĻāĻž share āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ Skill Certificate āĻšāϞ⧠paid āϧāĻžāĻĒ: 600 āĻŦāĻž āϤāĻžāϰ āĻŦā§āĻļāĻŋ score āĻ āĻāĻāĻž āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧ, āĻāϰ āĻāĻā§ āĻāĻŋāύ⧠āϰāĻžāĻāϞ⧠āϏā§āĻāĻž āĻĒāĻžāĻāϝāĻŧāĻžāϰ attempt āĻ āϏāĻžāĻĨā§ āĻĒāĻžāĻŦā§āύāĨ¤
āϏāĻŽāϝāĻŧ āĻŦāĻžāĻāϧāĻž, browser āĻāĻ
āĻĒā§āϰāĻļā§āύ āĻāϏ⧠āĻŦāĻĄāĻŧ āĻāĻāĻāĻž pool āĻĨā§āĻā§ āĻāϞā§āĻŽā§āϞ⧠āĻāϰā§, āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāĻļā§āύ āĻĨā§āĻā§āĻ āĻāĻĄāĻŧāĻŋ āĻāϞā§āĨ¤
āĻāĻĒāύāĻžāϰ code, āϞā§āĻāĻžāύ⧠test
āĻāĻĒāύāĻžāϰ code āĻāϞ⧠āĻāĻŽāύ test āĻ, āϝā§āĻā§āϞ⧠āĻāĻĒāύāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāύ āύāĻžāĨ¤ āĻĒāϰ⧠āĻāĻŽāĻž āĻĻā§āĻāϝāĻŧāĻž code āĻā§āϞ⧠āĻŽāĻŋāϞāĻŋāϝāĻŧā§āĻ āĻĻā§āĻāĻž āĻšāϝāĻŧāĨ¤
āĻļā§āϧ⧠āĻĒāĻžāϏ āύāĻž, āĻāĻāĻāĻž score
ā§Ļ āĻĨā§āĻā§ ā§§ā§Ļā§Ļā§Ļ āĻāϰ score, āϏāĻžāĻĨā§ āϤāĻžāϰ band, certificate āĻ āĻāĻžāĻĒāĻž āĻĨāĻžāĻā§āĨ¤
Proctoring āύā§āĻ, āĻāϰ āϏā§āĻāĻž āϞā§āĻāĻžāύā§āĻ āĻšāϝāĻŧ āύāĻžāĨ¤ āĻĒāϰāĻŋāĻāϝāĻŧ āĻŦāϞāϤ⧠account āĻāϰ certificate āĻ āϞā§āĻāĻž āύāĻžāĻŽāĻāĻžāĻāĨ¤ Webcam āύā§āĻ, ID āϝāĻžāĻāĻžāĻ āύā§āĻ, āĻāϰ āĻāĻĨāĻžāĻāĻž certificate āĻāϰ verify āĻĒā§āĻ āĻĻā§āĻ āĻāĻžāϝāĻŧāĻāĻžāϤā§āĻ āϞā§āĻāĻž āĻĨāĻžāĻā§āĨ¤
Score āĻāϰ band
Score ā§Ļ āĻĨā§āĻā§ ā§§ā§Ļā§Ļā§Ļ, āϤāĻŋāύāĻāĻž āĻāĻžāĻā§: concept, code āĻĒā§ā§ bug āĻ āĻŋāĻ āĻāϰāĻž, āĻāϰ āύāϤā§āύ āĻāϰ⧠āϞā§āĻāĻžāĨ¤
- Not yetāĻāĻŦāĻžāϰ āĻĻāĻŋāϤ⧠āĻšāĻŦā§ā§Ļâā§Šā§¯ā§¯
- FoundationāĻāĻŦāĻžāϰ āĻĻāĻŋāϤ⧠āĻšāĻŦā§ā§Ēā§Ļā§Ļâā§Ģ⧝⧝
- WorkingCertificate āĻĒāĻžāĻŦā§āύā§Ŧā§Ļā§Ļâā§ā§Ē⧝
- ProficientCertificate āĻĒāĻžāĻŦā§āύā§ā§Ģā§Ļâā§Žā§¯ā§¯
- AdvancedCertificate āĻĒāĻžāĻŦā§āύ⧝ā§Ļā§Ļâā§§ā§Ļā§Ļā§Ļ
āϝāĻžāϰāĻž āύāĻŋāϝāĻŧā§āĻ āĻĻā§āύ
āĻāĻžāĻāĻā§ āύāĻŋāĻā§āĻā§āύ?
āĻĒā§āϰāϤāĻŋāĻāĻž certificate āĻāϰ āĻāĻāĻāĻž āĻā§āϞāĻž āĻĒā§āĻ āĻāĻā§, āϝā§āĻāĻžāύ⧠score, āϤāĻŋāύāĻāĻž āĻāĻžāĻ, āϤāĻžāϰāĻŋāĻ āĻāϰ test āĻāϰ version āϞā§āĻāĻž āĻĨāĻžāĻā§āĨ¤ Screenshot āύāĻž, link āĻāĻž āĻā§āϝāĻŧā§ āύāĻŋāύāĨ¤
- āύāĻžāĻŽ
- Track
- Learn C Programming
- Score
- / ā§§ā§Ļā§Ļā§Ļ, band āϏāĻš
- āĻāĻžāĻ
- concept ¡ āĻĒāĻĄāĻŧā§ bug āĻ āĻŋāĻ Âˇ āϞā§āĻāĻž
- āϤāĻžāϰāĻŋāĻ, version