Bird
Raised Fist0
Cprogramming~5 mins

Storage size overview in C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the size of a char in C?
A char in C is always 1 byte. It is the smallest addressable unit of memory.
Click to reveal answer
beginner
How many bytes does an int typically use in C?
An int usually uses 4 bytes on modern systems, but it can vary depending on the system and compiler.
Click to reveal answer
beginner
What is the difference between float and double in terms of storage size?
float typically uses 4 bytes, while double uses 8 bytes, allowing double to store more precise decimal numbers.
Click to reveal answer
beginner
What does the term 'storage size' mean in C programming?
Storage size refers to how many bytes a data type or variable occupies in memory.
Click to reveal answer
intermediate
Why does the size of int vary on different systems?
Because C is designed to be portable, the size of int depends on the system architecture and compiler to optimize performance.
Click to reveal answer
How many bytes does a char occupy in C?
A2 bytes
B4 bytes
C1 byte
D8 bytes
Which data type usually uses 8 bytes in C?
Afloat
Bdouble
Cint
Dchar
Why can the size of int vary between systems?
ABecause of different system architectures
BBecause <code>int</code> is always 1 byte
CBecause <code>int</code> stores characters
DBecause <code>int</code> is a floating-point type
What does storage size measure in C?
AThe number of bytes a variable occupies
BThe value of a variable
CThe speed of a variable
DThe number of bits in a variable
Which data type is smallest in storage size?
Afloat
Bdouble
Cint
Dchar
Explain the typical storage sizes of basic C data types like char, int, float, and double.
Think about how much memory each type usually takes on modern systems.
You got /4 concepts.
    Why does the size of an int vary on different computers?
    Consider how C adapts to different hardware.
    You got /4 concepts.

      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