6.2.5.20 of the standard (well, a draft; hooray free :) covers derived types:

20 Any number of derived types can be constructed from the object, function, and incomplete types, as follows:
-- An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type. Array types are characterized by their element type and by the number of elements in the array. An array type is said to be derived from its element type, and if its element type is T, the array type is sometimes called array of T. The construction of an array type from an element type is called array type derivation.
-- A structure type describes a sequentially allocated nonempty set of member objects (and, in certain circumstances, an incomplete array), each of which has an optionally specified name and possibly distinct type.
-- A union type describes an overlapping nonempty set of member objects, each of which has an optionally specified name and possibly distinct type.
-- A function type describes a function with specified return type. A function type is characterized by its return type and the number and types of its parameters. A function type is said to be derived from its return type, and if its return type is T , the function type is sometimes called function returning T. The construction of a function type from a return type is called function type derivation.
-- A pointer type may be derived from a function type, an object type, or an incomplete type, called the referenced type. A pointer type describes an object whose value provides a reference to an entity of the referenced type. A pointer type derived from the referenced type T is sometimes called pointer to T. The construction of a pointer type from a referenced type is called pointer type derivation.

These methods of constructing derived types can be applied recursively.

Answer from sarnold on Stack Overflow
๐ŸŒ
BYJUS
byjus.com โ€บ gate โ€บ derived-data-types-in-c
Uses of Derived Data Types in C
April 25, 2022 - The C language supports a few derived data types. These are: Arrays โ€“ The array basically refers to a sequence (ordered sequence) of a finite number of data items from the same data type sharing one common name.
๐ŸŒ
Simplilearn
simplilearn.com โ€บ home โ€บ resources โ€บ software development โ€บ what is data types in c: derived, user-defined & modifiers data types
Data Types in C: Derived and Modifiers | Simplilearn
July 28, 2025 - Check out the data types in C and learn how to implement them while creating programs. Gain an in-depth knowledge of derived, user-defined and modifiers data types. Read on!
Address ย  5851 Legacy Circle, 6th Floor, Plano, TX 75024 United States
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ c language โ€บ c-derived-data-types
Derived Data Types in C - GeeksforGeeks
July 23, 2025 - In this article, we shall learn about derived data types. In C, the data types derived from the primitive or built-in data types are called Derived Data Types.
๐ŸŒ
Testbook
testbook.com โ€บ home โ€บ gate โ€บ derived data types in c - comprehensive guide
Derived Data Types in C - Comprehensive Guide
Here are a few of them: Arrays โ€“ An array is a sequence of a finite number of items of the same data type, grouped under a common name. Function โ€“ A Function in C is a self-contained block of one or more statements, having a specific name.
Top answer
1 of 5
7

6.2.5.20 of the standard (well, a draft; hooray free :) covers derived types:

20 Any number of derived types can be constructed from the object, function, and incomplete types, as follows:
-- An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type. Array types are characterized by their element type and by the number of elements in the array. An array type is said to be derived from its element type, and if its element type is T, the array type is sometimes called array of T. The construction of an array type from an element type is called array type derivation.
-- A structure type describes a sequentially allocated nonempty set of member objects (and, in certain circumstances, an incomplete array), each of which has an optionally specified name and possibly distinct type.
-- A union type describes an overlapping nonempty set of member objects, each of which has an optionally specified name and possibly distinct type.
-- A function type describes a function with specified return type. A function type is characterized by its return type and the number and types of its parameters. A function type is said to be derived from its return type, and if its return type is T , the function type is sometimes called function returning T. The construction of a function type from a return type is called function type derivation.
-- A pointer type may be derived from a function type, an object type, or an incomplete type, called the referenced type. A pointer type describes an object whose value provides a reference to an entity of the referenced type. A pointer type derived from the referenced type T is sometimes called pointer to T. The construction of a pointer type from a referenced type is called pointer type derivation.

These methods of constructing derived types can be applied recursively.

2 of 5
4

Data types that are derived from fundamental data types are called derived data types. Derived data types don't create a new data type but,instead they add some functionality to the basic data types.

In C, two derived data type are : Array & Pointer.

Array : An array is a collection of variables of same type. They are stored in contagious memory allocation.

e.g

int a[10];
char chi [20]; 

Pointer :

A pointer is a special variable that holds a memory address (location in memory) of another variable.

int i=10;
int *j;
j=&i;

Here, j is a integer pointer as it holds an address of an integer variable i.

๐ŸŒ
Hackr
hackr.io โ€บ home โ€บ articles โ€บ programming
Data Types in C and Its types? [A Complete Guide]
January 30, 2025 - Most of the time, for small programs, we use the basic fundamental data types in C โ€“ int, char, float, and double. For more complex and huge amounts of data, we use derived types โ€“ array, structure, union, and pointer.
๐ŸŒ
Starter Tutorials
startertutorials.com โ€บ home โ€บ programming โ€บ c programming โ€บ data types in c language
Data Types in C Language - Startertutorials
December 31, 2025 - Like user-defined data types we cannot declare new variables using the derived data types. Examples of derived data types in C are: arrays, functions, structures, unions and pointers.
Find elsewhere
๐ŸŒ
ZorbasMedia
zorbasmedia.com โ€บ home โ€บ articles โ€บ what is data types in c: derived, user-defined & modifiers data types
What Is Data Types in C: Derived, User-Defined & Modifiers Data Types - ZorbasMedia
March 8, 2024 - Primary Data Types: int, char, float, and double are fundamental data types in C, each with its own range, memory consumption, and format specifier. Derived Data Types: Arrays, functions, and pointers are derived data types that allow for more ...
๐ŸŒ
Manuelradovanovic
manuelradovanovic.com โ€บ 2025 โ€บ 02 โ€บ how-to-use-derived-data-types-in-c.html
MANUEL RADOVANOVIฤ† : How to Use Derived Data Types in C Programming Language for Efficient Programming
In the C programming language, ... such as int, float, char, and double, there are derived data types that are based on basic types, but offer additional capabilities and flexibility when working with data. Derived data types are types that extend the functionality of primitive types by combining or referencing existing data...
๐ŸŒ
Scaler
scaler.com โ€บ home โ€บ topics โ€บ what are user defined data types in c?
What are user defined data types in C? - Scaler Topics
April 15, 2024 - These are integer data type (int), floating data type (float), and character data type (char). Derived data types are derived from fundamental data types, like functions, arrays, and pointers in the C programming language.
๐ŸŒ
Quescol
quescol.com โ€บ home โ€บ data type in c, built-in and derived data type with examples
Data type in C, Built-in and derived data type with examples - Quescol
July 8, 2025 - for the example we can store โ€˜bโ€™, โ€˜;โ€™, and โ€˜0โ€™ in a variable using char data type. %c is used to display a char value at the terminal. ... In C, there are four derived datatypes Array, structure, pointer, and union.
๐ŸŒ
TutorialsPoint
tutorialspoint.com โ€บ difference-between-fundamental-data-types-and-derived-data-types
Difference between Fundamental data types and derived Data Types
There is no issue of time complexity because we deal with the concrete implementation of the programming language. Some common fundamental datatypes include int, char, float, void, etc. Derived Datatypes are composed of fundamental datatypes; they are derived from the fundamental data types.
๐ŸŒ
Medium
medium.com โ€บ @vijayaneraye โ€บ basics-of-c-programming-for-beginners-part-iii-4143b1b37691
Basics of C Programming for Beginners- Data types in C (Part-III) | by Vijay Aneraye | Medium
December 27, 2023 - It consists of integer values. 3. Union:- Union is like Structure. But union uses less memory. It stores a package of different types of data. The derived data types are those data types that are created by combining primitive data types and other derived data types.
Top answer
1 of 4
1

Is int * a derived datatype or not?

It is a derived type from the object type int.

if we need to consider int * as a derived datatype, then just like e, f, g, h are variables of int datatype, all the variables a, b, c, d must be pointers pointing to int datatype, right?

If you will introduce the type int * as a type specifier as for example

typedef int * T;

then indeed in this declaration

T a, b, c, d;

all the declared variables have the type int *. Otherwise the symbol * is related to the declarator of the variable a in this declaration

int* a, b, c, d;

that may be rewritten like

int ( * a ), b, c, d;

Pay attention to that declaration is defined like (here is a partial definition of declaration):

declaration:
    declaration-specifiers init-declarator-listopt ;

declaration-specifiers:
    type-qualifier declaration-specifiersopt

init-declarator-list:
    init-declarator
    init-declarator-list , init-declarator

init-declarator:
    declarator
    declarator = initializer

That is in this declaration

int* a, b, c, d;

the common type specifier of all declarators is int and the declarator a has the form *a.

While in this declaration

T a, b, c, d;

the common type specifier is T that represents the derived pointer type int *.

That is the derived pointer type int * is being built from its referenced type int. The derived type int ** is being built from its referenced type int * and so on.

So for example passing by reference in C means passing an object indirectly through another object of its derived pointer type that references the type of the original object.

2 of 4
1

Ok. We have an fundamental datatypes (int, float, double,...) and we have an derived datatypes and we also have a derived datatypes(fundamental datatype with some extensions).

In your first example int* a, b, c, d; we have an a as a pointer to integer but b, c, d are not pointers to the integers, because they are just integers !

So, yes you are right! int* is derived from the int. Your confusion has started with taking b,c,d also as a pointers but they are not. In C programming language during the variable declaration process if there is an * between variable name and hers datatype than that variable is a pointer to hers datatype.

๐ŸŒ
JNG ACADEMY
jngacademy.com โ€บ data-types-in-c-programming-language
Data Types in C Programming Language - JNG ACADEMY
September 3, 2024 - The basic data types in C are: int (integer): Used to store integers (whole numbers). char (character): Used to store single characters. float (floating point): Used to store decimal numbers with single precision. double (double floating point): Used to store decimal numbers with double precision. void: Represents the absence of a type or no value. Derived data types are constructed from the basic data types.
๐ŸŒ
Javatpoint
javatpoint.com โ€บ data-types-in-c
Data Types in C - javatpoint
Data Types in C with programming examples for beginners and professionals. There are 4 types of data types in C: Basic Data Type, Derived Data Type, Enumeration Data Type, Void Data Type etc.
๐ŸŒ
DevX
devx.com โ€บ home โ€บ derived data type
Derived Data Type - Glossary
October 17, 2023 - A derived data type, in the context of computer programming, is a complex data type created from fundamental data types like integers, characters, and floating-point numbers. Derived data types include arrays, structures, unions, and pointers, which ...