if it is use to represent non negative value so why we not using
unsigned int
instead ofsize_t
Because unsigned int
is not the only unsigned integer type. size_t
could be any of unsigned char
, unsigned short
, unsigned int
, unsigned long
or unsigned long long
, depending on the implementation.
Second question is that
size_t
andunsigned int
are interchangeable or not and if not then why?
They aren’t interchangeable, for the reason explained above ^^
.
And can anyone give me a good example of size_t and its brief working ?
I don’t quite get what you mean by “its brief working”. It works like any other unsigned type (in particular, like the type it’s typedeffed to). You are encouraged to use size_t
when you are describing the size of an object. In particular, the sizeof
operator and various standard library functions, such as strlen()
, return size_t
.
Bonus: here’s a good article about size_t
(and the closely related ptrdiff_t
type). It reasons very well why you should use it.