 In general, C is permissive in allowing manipulation of and conversion between pointer types, although compilers typically provide options for various levels of checking.Some other programming languages address these problems by using more restrictive reference types.Array types in C are traditionally of a fixed, static size specified at compile time.