This repository contains a collection of projects and exercises covering various topics in low-level programming using the C language. The projects are designed to introduce and reinforce important concepts and techniques in programming, including variables, control flow, functions, pointers, memory allocation, file input/output, and more.
Each project is contained within its own directory and contains a set of tasks or exercises to complete. The projects build on one another, with later projects exploring more advanced concepts and techniques.
This repository contains a collection of introductory and advanced programs in C, covering a wide range of topics in low-level programming.
The following is a list of the projects contained in this repository, along with a brief description of their contents:
Directory | Description |
---|---|
0x00-hello_world | Contains introductory programs that demonstrate how to output text to the console or terminal. |
0x01-variables_if_else_while | Covers the basics of variables and control flow statements, such as if-else statements and loops. |
0x02-functions_nested_loops | Covers the basics of writing and calling functions, as well as more advanced looping techniques like nested loops. |
0x03-debugging | Focuses on techniques for finding and fixing errors in code. |
0x04-more_functions_nested_loops | Builds on the concepts covered in 0x02, with more advanced functions and nested loops. |
0x05-pointers_arrays_strings | Covers the basics of pointers, arrays, and strings in C. |
0x06-pointers_arrays_strings | Continues the exploration of pointers, arrays, and strings, with a focus on more advanced concepts and techniques. |
0x07-pointers_arrays_strings | Further expands on pointers, arrays, and strings, with a focus on dynamic memory allocation and other advanced topics. |
0x08-recursion | Covers the concept of recursion, where a function calls itself to solve a problem. |
0x09-static_libraries | Covers the creation and use of static libraries in C. |
0x0A-argc_argv | Covers the use of command-line arguments in C programs. |
0x0B-malloc_free | Covers dynamic memory allocation and deallocation using the malloc and free functions. |
0x0C-more_malloc_free | Continues the exploration of dynamic memory allocation, with a focus on more advanced techniques and concepts. |
0x0D-preprocessor | Covers the role of the C preprocessor in modifying code before compilation. |
0x0E-structures_typedef | Covers the use of structures and typedefs in C. |
0x0F-function_pointers | Covers the use of function pointers, which allow functions to be treated as data. |
0x10-variadic_functions | Covers the use of variadic functions, which take a variable number of arguments. |
0x12-singly_linked_lists | Covers the concept of singly linked lists, a basic data structure in computer science. |
0x13-more_singly_linked_lists | Continues the exploration of singly linked lists, with a focus on more advanced techniques and concepts. |
0x14-bit_manipulation | Covers the manipulation of individual bits within binary data. |
0x15-file_io | Covers file input/output in C, including reading from and writing to files. |
This repository is intended for educational purposes and is part of the curriculum at ALX, a software engineering school.