I am getting confused with size_t
in C. I know that it is returned by the sizeof
operator. But what exactly is it? Is it a data type?
Let\'
size_t
is an unsigned integer data type which can assign only 0 and greater than 0 integer values. It measure bytes of any object's size and returned by sizeof
operator.
const
is the syntax representation of size_t
, but without const
you can run the programm.
const size_t number;
size_t
regularly used for array indexing and loop counting. If the compiler is 32-bit
it would work on unsigned int
. If the compiler is 64-bit
it would work on unsigned long long int
also. There for maximum size of size_t
depending on compiler type.
size_t
already define on <stdio.h>
header file, but It can also define by
<stddef.h>
, <stdlib.h>
, <string.h>
, <time.h>
, <wchar.h>
headers.
const
)#include <stdio.h>
int main()
{
const size_t value = 200;
size_t i;
int arr[value];
for (i = 0 ; i < value ; ++i)
{
arr[i] = i;
}
size_t size = sizeof(arr);
printf("size = %zu\n", size);
}
Output -: size = 800
const
)#include <stdio.h>
int main()
{
size_t value = 200;
size_t i;
int arr[value];
for (i = 0 ; i < value ; ++i)
{
arr[i] = i;
}
size_t size = sizeof(arr);
printf("size = %zu\n", size);
}
Output -: size = 800