Bird
Raised Fist0
Cprogramming~15 mins

Storage size overview in C - Mini Project: Build & Apply

Choose your learning style10 modes available
Storage size overview
📖 Scenario: Imagine you are learning about how much space different types of data take in a computer's memory. This is important because knowing the size helps you use memory wisely in your programs.
🎯 Goal: You will write a simple C program that shows the storage size (in bytes) of different basic data types.
📋 What You'll Learn
Create variables of types char, int, float, and double
Create a variable called size_char to store the size of char
Use the sizeof operator to find sizes of the variables
Print the sizes with clear messages
💡 Why This Matters
🌍 Real World
Knowing the size of data types helps programmers write efficient code that uses memory wisely, which is important in embedded systems and performance-critical applications.
💼 Career
Understanding data sizes is a fundamental skill for software developers, especially those working in systems programming, embedded development, or performance optimization.
Progress0 / 4 steps
1
Create variables of basic data types
Create variables called c of type char, i of type int, f of type float, and d of type double.
C
Hint

Use the syntax type variable_name; to declare each variable.

2
Create a variable to store size of char
Create an int variable called size_char and set it to the size of the variable c using sizeof(c).
C
Hint

Use int size_char = sizeof(c); to get the size of c.

3
Find sizes of all variables
Create int variables called size_int, size_float, and size_double. Set each to the size of i, f, and d respectively using sizeof.
C
Hint

Use int size_int = sizeof(i); and similarly for others.

4
Print the sizes of all variables
Use printf to print the sizes stored in size_char, size_int, size_float, and size_double. Print messages exactly as: Size of char: X bytes, replacing X with the size value.
C
Hint

Use printf("Size of char: %d bytes\n", size_char); and similarly for others.

Practice

(1/5)
1. Which of the following data types typically uses the least amount of memory in C?
easy
A. int
B. char
C. float
D. double

Solution

  1. Step 1: Recall typical sizes of basic data types

    In C, char usually takes 1 byte, int 4 bytes, float 4 bytes, and double 8 bytes.
  2. Step 2: Compare sizes to find the smallest

    Since 1 byte is less than 4 or 8 bytes, char uses the least memory.
  3. Final Answer:

    char -> Option B
  4. Quick Check:

    char = 1 byte [OK]
Hint: Remember char is 1 byte, smallest basic type in C [OK]
Common Mistakes:
  • Confusing char with int size
  • Assuming float is smaller than char
  • Thinking double is smallest
2. Which of the following is the correct way to declare a variable of type double in C?
easy
A. double num;
B. double: num;
C. num double;
D. double-num;

Solution

  1. Step 1: Recall C variable declaration syntax

    In C, the type comes first, then the variable name, ending with a semicolon.
  2. Step 2: Check each option for correct syntax

    double num; follows this rule: double num;. Others have invalid syntax like colon, reversed order, or invalid characters.
  3. Final Answer:

    double num; -> Option A
  4. Quick Check:

    Type before name, semicolon ends declaration [OK]
Hint: Type first, then variable name, end with semicolon [OK]
Common Mistakes:
  • Using colon instead of semicolon
  • Reversing type and variable name
  • Using invalid characters like dash
3. Consider the following C code snippet:
printf("%zu", sizeof(long));

What is the expected output on a typical 64-bit system?
medium
A. 8
B. 4
C. 2
D. 16

Solution

  1. Step 1: Understand sizeof operator on 64-bit systems

    On most 64-bit systems, long is 8 bytes (64 bits).
  2. Step 2: Match the output of sizeof(long)

    The sizeof operator returns the size in bytes, so it returns 8.
  3. Final Answer:

    8 -> Option A
  4. Quick Check:

    long = 8 bytes on 64-bit [OK]
Hint: On 64-bit, long is usually 8 bytes [OK]
Common Mistakes:
  • Assuming long is 4 bytes on 64-bit
  • Confusing bits with bytes
  • Using wrong format specifier in printf
4. The following code tries to print the size of a short variable but causes a compilation error:
short s;
printf("%d", sizeof(s));

What is the main reason for the error?
medium
A. Variable s is not initialized
B. Missing semicolon after short s
C. Cannot use sizeof on variables
D. Using wrong format specifier for sizeof result

Solution

  1. Step 1: Identify the type returned by sizeof

    The sizeof operator returns a value of type size_t, which is an unsigned integer type.
  2. Step 2: Check printf format specifier compatibility

    The format specifier %d expects an int, but sizeof returns size_t. The correct specifier is %zu.
  3. Final Answer:

    Using wrong format specifier for sizeof result -> Option D
  4. Quick Check:

    Use %zu for sizeof output [OK]
Hint: Use %zu to print sizeof results safely [OK]
Common Mistakes:
  • Using %d instead of %zu for sizeof
  • Thinking sizeof needs variable initialization
  • Missing semicolon (actually present)
5. You want to store 1000 integers in an array on a 32-bit system. If int is 4 bytes, how much memory in bytes will the array consume?
hard
A. 2000 bytes
B. 1000 bytes
C. 4000 bytes
D. 8000 bytes

Solution

  1. Step 1: Identify size of one integer

    On a 32-bit system, int typically uses 4 bytes.
  2. Step 2: Calculate total memory for 1000 integers

    Total memory = number of elements x size of each element = 1000 x 4 = 4000 bytes.
  3. Final Answer:

    4000 bytes -> Option C
  4. Quick Check:

    1000 x 4 = 4000 bytes [OK]
Hint: Multiply count by size of int (4 bytes) [OK]
Common Mistakes:
  • Using size 2 bytes for int
  • Multiplying by 8 bytes (double size)
  • Confusing bits with bytes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard