C Tutorial — Learn C Programming
Key takeaway: This free C tutorial teaches you systems programming from scratch — variables, pointers, arrays, functions, structs, and memory management — with practical code examples you can compile and run.
C is a general-purpose, procedural programming language created in 1972. It is used for operating systems, embedded systems, game engines, and performance-critical applications. This tutorial is for beginners, CS students, and developers who want to understand how computers work at a low level.
Last updated: September 2026
Arrays in C
Arrays are collections of elements of the same data type stored in contiguous memory locations. They allow you to store multiple values under a single variable name.
Array Declaration and Initialization
#include <stdio.h>
int main() {
// Declaration and initialization
int numbers[5] = {10, 20, 30, 40, 50};
// Alternative ways to initialize
int scores[] = {85, 92, 78, 96, 88}; // Size determined automatically
int grades[5] = {0}; // All elements initialized to 0
// Accessing array elements
printf("First number: %d\n", numbers[0]);
printf("Third number: %d\n", numbers[2]);
// Modifying array elements
numbers[1] = 25;
printf("Modified second number: %d\n", numbers[1]);
return 0;
}Array Operations
#include <stdio.h>
int main() {
int numbers[5] = {10, 20, 30, 40, 50};
int size = 5;
int sum = 0;
// Print all elements
printf("Array elements: ");
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
sum += numbers[i];
}
printf("\n");
// Calculate average
float average = (float)sum / size;
printf("Sum: %d\n", sum);
printf("Average: %.2f\n", average);
// Find maximum element
int max = numbers[0];
for (int i = 1; i < size; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
printf("Maximum element: %d\n", max);
return 0;
}Important Notes
- Array indices start from 0
- Array size must be known at compile time
- Accessing out-of-bounds elements leads to undefined behavior
- Arrays are passed to functions by reference