Data Types in Programming
Data Types in Programming
C is a statically typed language. The name of the variable along with the
type of data it intends to store must be explicitly declared before actually
using it.
The array types and structure types are referred collectively as the aggregate
types. The type of a function specifies the type of the function's return value. We
will see the basic types in the following section, where as other types will be
covered in the upcoming chapters.
2|Page
Integer Data Types in C
The following table provides the details of standard integer types with their
storage sizes and value ranges
-9223372036854775808 to
long 8 bytes
9223372036854775807
unsigned long 8 bytes 0 to 18446744073709551615
3|Page
To get the exact size of a type or a variable on a particular platform, you can use
the sizeof operator. The expressions sizeof(type) yields the storage size of the
object or type in bytes.
return 0;
}
Output
When you compile and execute the above program, it produces the following
result on Linux−
CHAR_BIT : 8
CHAR_MAX : 127
CHAR_MIN : -128
INT_MAX : 2147483647
INT_MIN : -2147483648
LONG_MAX : 9223372036854775807
LONG_MIN : -9223372036854775808
SCHAR_MAX : 127
SCHAR_MIN : -128
SHRT_MAX : 32767
SHRT_MIN : -32768
5|Page
UCHAR_MAX : 255
UINT_MAX : 4294967295
ULONG_MAX : 18446744073709551615
USHRT_MAX : 65535
The header file "float.h" defines the macros that allow you to use these values and
other details about the binary representation of real numbers in your programs.
6|Page
Open Compiler
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>
return 0;
}
Output
When you compile and execute the above program, it produces the following
result on Linux −
7|Page
Storage size for float : 4
FLT_MAX : 3.40282e+38
FLT_MIN : 1.17549e-38
-FLT_MAX : -3.40282e+38
-FLT_MIN : -1.17549e-38
DBL_MAX : 1.79769e+308
DBL_MIN : 2.22507e-308
-DBL_MAX : -1.79769e+308
Precision value: 6
Note: "sizeof" returns "size_t". The type of unsigned integer of "size_t" can vary
depending on platform. And, it may not be long unsigned int everywhere. In such
cases, we use "%zu" for the format string instead of "%d".
Earlier versions of C did not have Boolean data type. C99 standardization of ANSI
C introduced _bool type which treats zero value as false and non-zero as true.
Explore our latest online courses and learn new skills at your own pace. Enroll and
become a certified expert to boost your career.
8|Page
There are two user-defined data types struct and union, that can be defined by
the user with the help of the combination of other basic data types.
struct student {
char name[20];
int marks, age;
};
union ab {
int a;
float b;
};
9|Page
We shall learn more about structure and union types in a later chapter.
10 | P a g e
A pointer of type void * represents the address of an object, but not
its type. For example, a memory allocation function void *malloc(
size_t size ); returns a pointer to void which can be casted to any
data type.
int marks[5];
Arrays can be initialized at the time of declaration. The values to be assigned are
put in parentheses.
C also supports multi-dimensional arrays. To learn more about arrays, refer to the
chapter on Arrays in C.
11 | P a g e
A pointer is a special variable that stores address or reference of another
variable/object in the memory. The name of pointer variable is prefixed by
asterisk (*). The type of the pointer variable and the variable/object to be pointed
must be same.
int x;
int *y;
y = &x;
Here, "y" is a pointer variable that stores the address of variable "x" which is of
"int" type.
Pointers are used for many different purposes. Text string manipulation and
dynamic memory allocation are some of the processes where the use of pointers
is mandatory. Later in this tutorial, you can find a detailed chapter on Pointers in
C.
REFERENCE
Tutorial_Point. (2024). C - Data Types. Retrieved September 30, 2024, from Tutorial
Point: https://www.tutorialspoint.com/cprogramming/c_data_types.htm
12 | P a g e