๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ c language โ€บ data-types-in-c
Data Types in C - GeeksforGeeks
Different data types also have different ranges up to which can vary from compiler to compiler. If you want to know more about ranges refer to this Ranges of Datatypes in C. Note: The long, short, signed and unsigned are datatype modifier that can be used with some primitive data types to change the size or length of the datatype.
Published ย  October 18, 2025
๐ŸŒ
W3Schools
w3schools.com โ€บ c โ€บ c_data_types.php
C Data Types
In this tutorial, we will focus on the most basic ones: There are different format specifiers for each data type. Here are some of them: Note: It is important that you use the correct format specifier for the specified data type.
data type supported by the C programming language
In the C programming language, data types constitute the semantics and characteristics of storage of data elements. They are expressed in the language syntax in form of declarations for memory locations or โ€ฆ Wikipedia
๐ŸŒ
Wikipedia
en.wikipedia.org โ€บ wiki โ€บ C_data_types
C data types - Wikipedia
3 weeks ago - Various rules in the C standard make unsigned char the basic type used for arrays suitable to store arbitrary non-bit-field objects: its lack of padding bits and trap representations, the definition of object representation, and the possibility of aliasing.
๐ŸŒ
SlideShare
slideshare.net โ€บ home โ€บ education โ€บ what is non-primitive data type?
What is Non-primitive data type? | PPTX | Programming Languages | Computing
Non-primitive or derived data types in C are constructed from primitive types like int, char, and float, allowing for more complex data structures. The main types include arrays, structures, unions, and pointers, each serving specific purposes, ...
๐ŸŒ
NxtWave
ccbp.in โ€บ blog โ€บ articles โ€บ difference-between-primitive-and-non-primitive-data-structure
Difference Between Primitive and Non-Primitive Data Structure
Non-primitive data structures (like arrays, strings, lists, stacks, trees, graphs) store multiple values or complex data, support operations (insert, delete, search), and are stored in heap memory.
๐ŸŒ
Wikipedia
en.wikipedia.org โ€บ wiki โ€บ Primitive_data_type
Primitive data type - Wikipedia
2 weeks ago - In C and C++, there are minimally four types, char, int, float, and double, but the qualifiers short, long, signed, and unsigned mean that C contains numerous target-dependent integer and floating-point primitive types. C99 allowed the modifier long to be used twice in combination with int ...
๐ŸŒ
Quora
cstdspace.quora.com โ€บ Are-pointers-a-non-primitive-data-type-or-are-they-variables
Are pointers a non-primitive data type or are they variables? - C Programmers - Quora
Answer (1 of 11): You're conflating types, values, and objects. For example, [code ]int[/code] is a type. [code ]3[/code] is an [code ]int[/code] value. The declaration [code ]int x;[/code] declares [code ]x[/code] as an object named [code ]x[/code] with associated type [code ]int[/code]. The ex...
Find elsewhere
๐ŸŒ
Reddit
reddit.com โ€บ r/learnprogramming โ€บ why do data types like "char" , "int" or "long" are called primitive, when they are all made up of binary? technically, isn't all non-binary data "non primitive / composite"?
r/learnprogramming on Reddit: Why do data types like "char" , "int" or "long" are called primitive, when they are all made up of binary? Technically, isn't all non-binary data "non primitive / composite"?
May 4, 2022 -

All integers are made up of binary. And char is made up of an integer, which is made up of binary, so it's technically a "higher order data type" than it's int and long primitive relatives.

It sounds nitpicky, but isn't everything beyond a boolean or a group of booleans a composite data type? Shouldn't booleans be the only primitive type?

Top answer
1 of 9
4
at least for java primitives are the types which are not objects. this means their variables are an actual value, instead of a reference to an object Shouldn't booleans be the only primitive type? most booleans are actually a byte since single bit addressing is slow
2 of 9
3
you're right that it is all binary eventually. Data types are are primitive usually fit into a number of categories. A primitive data type comes with the language and is idiomatic for the language. A primitive data type should be able to be expressed in the language using a limited amount of memory. A primitive data type has no additional methods attached to it (usually) The primitive data types are basically just data types that have been defined over the decade and they are considered so fundamental to programming and expressions in general with a language that nearly every language comes with a set of primitives you can use. Additionally, these primitives are fundamental and well documented to such a severity that there is a standardized way to handle them in memory. For example, characters and strings are typically handled with the ASCII way: https://erg.abdn.ac.uk/users/gorry/eg2069/ascii.html However, the whole point of programming is we want to make NEW things. We can easily define new data types. Infact whenever you define anything in any programming language you are de-facto making a new data type. For example class car = { doors = 4; color = "red"; wheels = 4; } When you define a new class, or even a new fuction. You're literally saying there is a new data type "car" and it has these properties and has these methods. These properties and methods is how it interacts with the rest of the language. any new data type typically is defined with primitives to keep track of it's properties and sometimes it's properties can even be other classes you've defined like this: class door { windows = 2; automatic_windows = true; } class car = { doors = [new door(), new door(), new door(), new door()]; color = "red"; wheels = 4; } These are new data types which we are creating, and languages that require typing syntax typically AUTOMATICALLY assume your classes are also types. So that's the easiest way to distinquish primitives from non-primitives. The primitives are already in the language when you kick up a new environment. Most primitives also are highly optimized and therefore are very performant. As you could imagine, a class/data type we define ourselves could be fairly bloated and significantly less performant than something as performant as an integer. It's important to note that there is a distinction between a class and a data type. These two things are not the same thing, but every class is ALSO a data type in addition to it's other capabilities.
๐ŸŒ
Quora
quora.com โ€บ What-is-the-meaning-of-primitive-and-non-primitive-data-types
What is the meaning of primitive and non primitive data types? - Quora
Answer (1 of 2): primitive data types are the predefined data types, which are supported by a programming language . these are used by programmers during the creation of new variables.. ex:- char, int, float, boolean Non - Primitive data types are not predefined by programming language, bubt ar...
Top answer
1 of 3
10

The answer is no, and for 2 reasons.

  1. The notion of primitive types in Java exists by opposition to object types. This has no sense in C which is not an object language.
  2. C intends to be as efficient as possible on any architecture, from 16 or even 8 bits microcontrollers to 64 bits platforms. For that reason the int type is generally chosen as the natural type for the architecture provided it contains at least 16 bits. On the other hand, Jave targets maximum portability and fixes the size of all its types.

So even if the list on Wikipedia looks large, it is (unfortunately...) accurate.

2 of 3
4

C appears to have many, many types, but what if any are considered primitive types.

The Java term "primitive type" distinguishes from reference types. C has no direct analog of Java's reference types, so no need to draw such a distinction.

C does, however, define several categories of types, and among those, the basic types are a reasonably good analogue of Java's primitive types. This category comprises char, the signed and unsigned integer types, and the floating[-point] types. It is ultimately from these, the enumerated types, and type void that all other types are derived, including array types, structure and union types, pointer types, atomic types, and function types.

The basic types can include implementation-defined types, and therefore cannot be exhaustively listed, but those defined by the language spec are:

char

The standard signed integer types
signed char, short int, int, long int, long long int

The standard unsigned integer types
_Bool, unsigned char, unsigned short int, unsigned int, unsigned long int, unsigned long long int

The real floating types
float, double, long double

The complex types
float _Complex, double _Complex, long double _Complex

This is covered in section 6.2.5 of the language spec.

It should be noted that whereas Java specifies the the size and representation of its primitive types, C leaves some of those details of its basic types to implementations, placing constraints on their ranges of representable values and other properties without specifying exact details.

C appears to have many, many types

C has an unbounded number of types, as it provides for types to be derived from other types. The same applies to Java. Ignoring implementation-defined extension types, C has more than twice as many basic types as Java has primitive types, but that's still manageable, especially given the way they are organized.

However, C also has a mechanism for defining type aliases, and a whole family of standard type aliases, and these can make it appear that there are more types than really there are.

๐ŸŒ
strobecorp
strobecorp.com โ€บ home โ€บ primitive and non primitive data types in c: a detailed overview
Primitive and Non Primitive Data Types in C: A Detailed Overview
September 18, 2023 - The types of non-primitive data types are arrays and structures. Understanding the differences between these two data types can help programmers make better decisions when designing programs.
๐ŸŒ
MakeUseOf
makeuseof.com โ€บ home โ€บ programming โ€บ primitive data types in c: a beginner's guide
Primitive Data Types in C: A Beginner's Guide
September 12, 2021 - Primitive types are data types that come as part of the programming language. Non-primitive types are those defined by the programmer. They are also called reference types.
๐ŸŒ
Scaler
scaler.com โ€บ home โ€บ topics โ€บ difference between primitive and non primitive data structure
Difference Between Primitive and Non Primitive Data Structure - Scaler Topics
March 31, 2024 - Let us understand primitive data structure with an example. A variable with the data type integer can allow storing the values of integer type only, a variable with the float data type can allow storing the values of float data type and the variable with the character data type allows storing character values only. The non-primitive data structure is further classified into two parts i.e.
๐ŸŒ
AlmaBetter
almabetter.com โ€บ bytes โ€บ articles โ€บ difference-between-primitive-and-non-primitive-data-structure
Difference Between Primitive & Non Primitive Data Structure
October 16, 2024 - In function signatures, primitive types are commonly used for both input parameters and return types. Used for basic data manipulation. Serve as the building blocks for more complex data structures. Non-primitive data structures, on the other hand, are more complex forms of data structures that are derived from primitive data types.
๐ŸŒ
Codecademy
codecademy.com โ€บ docs โ€บ data types
C | Data Types | Codecademy
May 15, 2024 - Data types are units of value stored in memory through variables, each with different functionalities and size-ranges.
๐ŸŒ
Simplilearn
simplilearn.com โ€บ home โ€บ resources โ€บ software development โ€บ learn what are data structures in c and their uses
Learn What Are Data Structures in C and Their Uses | Simplilearn
July 31, 2025 - Know what are data structures, types of data structures like primitive/non-primitive, static/dynamic, data structure array, stack, queue & much more in detail with examples.
Address ย  5851 Legacy Circle, 6th Floor, Plano, TX 75024 United States
๐ŸŒ
C Language Basics
clanguagebasics.com โ€บ home โ€บ c language tutorial โ€บ data types in c: primitive data types in c language
Data Types in C: Primitive Data Types in C Language - C Language Basics
December 25, 2018 - Thus, the variables declared as char data type can only store one single character. ... Unlike other primitive data types in c, void data type does not create any variable but returns an empty set of values.
๐ŸŒ
Saralcode
saralcode.com โ€บ c-plus-plus โ€บ non-primitive-data-types
Non-Primitive Data Types in C++: Arrays, Structures and ...
In C++, non-primitive data types are data structures defined by the programmer or provided by the language library.