Data Types

Data Types in C Programming

C Programming Tutorial: Data Types

Welcome to the Codes With Pankaj "Data Types in C Programming" tutorial! This tutorial will guide you through the fundamental data types available in C and their usage.

Table of Contents

1. Introduction to Data Types

Data types in C specify the type of data that variables can store. They define the size and format of the values that can be stored in memory. Understanding data types is crucial for writing efficient and reliable C programs.

2. Basic Data Types

  1. int (Integer):

    • Used to store whole numbers without decimals.

    • Example:

    int age = 25;
    printf("Age: %d\n", age);  // Output: Age: 25
  2. float (Floating-Point):

    • Used to store numbers with decimal points.

    • Example:

    float height = 5.9;
    printf("Height: %.1f\n", height);  // Output: Height: 5.9
  3. double (Double Floating-Point):

    • Similar to float but with double the precision (more decimal points).

    • Example:

    double distance = 12345.6789;
    printf("Distance: %.4f\n", distance);  // Output: Distance: 12345.6789
  4. char (Character):

    • Used to store single characters (letters, digits, symbols).

    • Example:

    char grade = 'A';
    printf("Grade: %c\n", grade);  // Output: Grade: A

Summary of Basic Data Types

Data TypeDescriptionExample Value


Whole numbers



Decimal numbers (single)



Decimal numbers (double)



Single character


3. Derived Data Types

  1. Array:

    • Collection of variables of the same type stored in contiguous memory locations.

    • Example:

    int numbers[5] = {1, 2, 3, 4, 5};
    printf("First number: %d\n", numbers[0]);  // Output: First number: 1
  2. Pointer:

    • Variable that stores the memory address of another variable.

    • Example:

    int num = 10;
    int *p = #  // Pointer p holds the address of num
    printf("Value of num: %d\n", *p);  // Output: Value of num: 10
  3. Structure (struct):

    • User-defined data type that groups different types of variables.

    • Example:

    struct Person {
        char name[50];
        int age;
    struct Person person1 = {"Alice", 30};
    printf("Name: %s, Age: %d\n",, person1.age);  // Output: Name: Alice, Age: 30

3. Enumeration (enum)

  • A set of named integer constants.

  • Example:

enum Day {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
enum Day today = Wednesday;
printf("Day: %d\n", today);  // Output: Day: 3 (since counting starts from 0)

4. Void

  • Represents the absence of any type.

  • Commonly used for functions that do not return a value.

  • Example:

void greet() {
    printf("Hello, World!\n");

int main() {
    greet();  // Output: Hello, World!
    return 0;

4. User-Defined Data Types


  • Allows the creation of aliases for existing data types.


typedef unsigned int uint;

5. Data Type Modifiers


  • Specifies that a variable's value cannot be changed.


  • Indicates that a variable's value may change at any time without any action being taken by the code.


  • Indicates that a pointer does not alias any other pointer.

6. Sizeof Operator

The sizeof operator returns the size of a variable or data type in bytes.


#include <stdio.h>

int main() {
    printf("Size of int: %lu bytes\n", sizeof(int));
    return 0;

7. Common Mistakes and Best Practices

Common Mistakes

  1. Misusing data types, leading to unexpected behavior or errors.

  2. Forgetting to initialize variables before using them.

  3. Ignoring data type sizes, leading to portability issues.

Best Practices

  1. Choose appropriate data types based on the range and precision needed for variables.

  2. Use sizeof operator to ensure portability and avoid hardcoding data type sizes.

  3. Initialize variables at the point of declaration to avoid undefined behavior.

8. Exercises

Try these exercises to practice data types in C:

  1. Exercise 1: Write a program to find the size of various data types.

  2. Exercise 2: Create an array of integers and find the sum of its elements.

  3. Exercise 3: Implement a function to swap two integers using pointers.

  4. Exercise 4: Define a structure to represent a student with fields for name, roll number, and marks.

  5. Exercise 5: Create a union to store an integer, a float, and a character array.

We hope this tutorial has helped you understand data types in C programming. Practice with the exercises provided to reinforce your understanding. Happy coding!

For more tutorials, visit

Last updated