C Programming
Master the fundamentals of C programming with comprehensive tutorials, examples, and hands-on exercises
Pointers in C
Pointers are variables that store memory addresses of other variables. They are one of the most powerful features of C programming, allowing direct memory manipulation and efficient programming.
Pointer Declaration and Initialization
Basic Pointer Operations
#include <stdio.h>
int main() {
int num = 42;
int *ptr; // Pointer declaration
ptr = # // Assign address of num to ptr
printf("Value of num: %d\n", num);
printf("Address of num: %p\n", &num);
printf("Value of ptr: %p\n", ptr);
printf("Value pointed by ptr: %d\n", *ptr);
// Modify value through pointer
*ptr = 100;
printf("New value of num: %d\n", num);
return 0;
}
Pointers with Different Data Types
Different Pointer Types
#include <stdio.h>
int main() {
int intVar = 10;
float floatVar = 3.14;
char charVar = 'A';
int *intPtr = &intVar;
float *floatPtr = &floatVar;
char *charPtr = &charVar;
printf("Integer: %d, Address: %p\n", *intPtr, intPtr);
printf("Float: %.2f, Address: %p\n", *floatPtr, floatPtr);
printf("Character: %c, Address: %p\n", *charPtr, charPtr);
return 0;
}
Pointers and Arrays
Array Pointers
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
int *ptr = arr; // Points to first element
printf("Array elements using pointer:\n");
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d, *(ptr + %d) = %d\n",
i, arr[i], i, *(ptr + i));
}
// Pointer arithmetic
printf("\nUsing pointer arithmetic:\n");
for (int i = 0; i < 5; i++) {
printf("Element %d: %d\n", i, *ptr);
ptr++; // Move to next element
}
return 0;
}
Pointers and Functions
Pass by Reference
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void modifyArray(int *arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] *= 2; // Double each element
}
}
int main() {
int x = 10, y = 20;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
int numbers[] = {1, 2, 3, 4, 5};
printf("\nOriginal array: ");
for (int i = 0; i < 5; i++) {
printf("%d ", numbers[i]);
}
modifyArray(numbers, 5);
printf("\nModified array: ");
for (int i = 0; i < 5; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
Important Notes:
- & (address-of operator) gets the address of a variable
- * (dereference operator) accesses the value at an address
- Uninitialized pointers can cause segmentation faults
- Always initialize pointers before use
Frequently Asked Questions
C is a powerful, general-purpose programming language that's been around since the 1970s. It's the foundation for many modern languages and is essential for system programming, embedded systems, and understanding how computers work at a low level. Learning C gives you a solid foundation in programming fundamentals.
No prior programming experience is required! Our C programming tutorial is designed for complete beginners. We start with the basics and gradually progress to more advanced topics. However, having some basic computer literacy and logical thinking skills will be helpful.
You need a C compiler to run C programs. For beginners, we recommend using our online C compiler which requires no installation. For local development, you can use GCC (GNU Compiler Collection) which is available on Windows (via MinGW), macOS (via Xcode), and Linux. IDEs like Code::Blocks, Dev-C++, or Visual Studio Code are also helpful.
The time to learn C depends on your dedication and prior experience. With consistent practice (1-2 hours daily), you can grasp the basics in 2-4 weeks and become proficient in 2-3 months. Mastering advanced concepts like pointers, memory management, and data structures may take 6-12 months of regular practice.
C programming skills open doors to various career paths including system programming, embedded systems development, operating system development, device driver programming, game development, and firmware development. Many companies in automotive, aerospace, telecommunications, and IoT sectors actively seek C programmers.
Absolutely! C remains highly relevant and is consistently ranked among the top programming languages. It's essential for system programming, embedded systems, IoT devices, and performance-critical applications. Many modern languages are built on C, and understanding C helps you become a better programmer overall.