C Tutorial

C Tutorial C Language Environment Setup Execution flow of C program C printf and Scanf C Data type C Token Variable in C Operators in C Comments in C Escape Sequence in C C – Storage Classes C Decision control statement Loop Statement in C Break, continue and goto statement in C Type Casting in C Function in C Recursion in C String in C C Array Pointer in C Dynamic memory allocation C –Structure Nested Structure in C Union in C File Handling in C C pre-processor Static Function In C Sizeof In C Selection Sort In C Scope Of Variables In C Runtime Vs Compile Time In C Random Access Lseek In C Queue Implementation In C Pseudo Code In C Prototype In C Pointer To Pointer In C Pointer Arithmetic In C Passing Array To Function In C Null Character In C Merge Sort In C Macros In C Library Functions In C Memory Leak In C Int In C Goto And Labels In C Fibonacci Series In C Fflush In C Derived Data Types In C Data Types In C Const Vs Volatile In C Character Set In C Character Class Tests In C Calloc In C C Pointers Arrays In C Include In C Clrscr In C C Vs Java String Literals In C Types Of Pointers In C Variables In C Volatile In C Why C Is A Middle Level Language Infix To Postfix Program In C Ceil function in C LCM of two numbers in C Quick sort in C Static in C function pointer as argument in C Top Array Keywords in C Add two numbers using the function in C Armstrong program in C using function Array, Declaring Arrays and Array Initialization Limitations of Inline Function in C Merge and Merge sort with example in C Do-While Loop in C For Loop in C While-Loop in C Difference between while and do-while loop in C Array Of Structures in C Data Structures And Algorithms in C Types Of Structures In C How to Avoid Structure Padding in C Use of Structure in C Do WHILE LOOP in C Programming Examples For Loop in C Programming Examples Entry Control Loop in C Exit control loop in C Infinite loop in C Nested loop in C pow() function in C String Handling functions in C

C Data type

Data Types in C with Examples

Data types are used to define the type of data that a variable can store to perform a specific operation.

ANSI C provides three types of data-types.
  1. Primary Data Types
  2. Derived Data Type
  3. User Defined Data Types

Primitive data types:
Void It holds no value and generally used with function.
Int It is used to denote an integer type.
Char It is used to denote a character type.
float, double It is used to denote a floating point type.
int *, float *, char * It is used to denote a pointer type.

Primitive data types are used to hold the maximum value. Every C compiler supports five primary data types:
int a=90;  //  valid
a=90;  //   invalid
Derived  Data Type: Derived data types are derived from fundamental data type.  Variable of derived data type allows us to store the value of the same time in one variable. C supports three derived data types:
Arrays Arrays are sequences of data items that have homogeneous values and adjacent memory locations to store values.
References Function pointers allow referencing functions with a particular signature.
Pointers It is used to access memory and deal with their addresses.

int mark[5]={10, 20, 30, 40};
int *a;
User Defined Data Types: The user-defined data type is used to store multiple values. There are various user-defined data types are given below in the table.
Data Types Description
Structure The structure is a package of variables under a single name. The “struct” keyword is used to define a structure.
Union It is used to store the various data types in the same memory location.
Enum It consists of integral constants and each of them is assigned with a specific name. It is defined as “enum” keyword.

struct student
int id;
char name[10];
float mob;
C Data Type with size
Let us consider an example to find the memory size of data type:
int main()
int a;
char b;
float c;
double d;
printf("Storage size for int data type:%d \n",sizeof(a));
printf("Storage size for char data type:%d \n",sizeof(b));
printf("Storage size for float data type:%d \n",sizeof(c));
printf("Storage size for double data type:%d\n",sizeof(d));
return 0;
Data Types Memory Size Range
char 1 byte ?128 to 127
signed char 1 byte ?128 to 127
unsigned char 1 byte 0 to 255
short 2 byte ?32,768 to 32,767
signed short 2 byte ?32,768 to 32,767
unsigned short 2 byte 0 to 65,535
int 2 byte ?32,768 to 32,767
signed int 2 byte ?32,768 to 32,767
unsigned int 2 byte 0 to 65,535
short int 2 byte ?32,768 to 32,767
signed short int 2 byte ?32,768 to 32,767
unsigned short int 2 byte 0 to 65,535
long int 4 byte -2,147,483,648 to 2,147,483,647
signed long int 4 byte -2,147,483,648 to 2,147,483,647
unsigned long int 4 byte 0 to 4,294,967,295
float 4 byte 1E–37 to 1E+37 with six digits of precision
double 8 byte 1E–37 to 1E+37 with ten digits of precision
long double 10 byte 1E–37 to 1E+37 with ten digits of precision