devxlogo

Data Pointers vs. Function Pointers

Data Pointers vs. Function Pointers

C and C++ make a clear-cut distinction between two types of pointers: data pointers and function pointers. A function pointer embodies several constituents such as the list of arguments, a return-to address, and the machine instructions. A data pointer, on the other hand, merely holds the address of the first byte of a variable. The substantial difference between the two functions led the C standardization committee to prohibit the use of void* (or data pointers of any kind) to represent function pointers and vice versa. In C++ this restriction was relaxed, yet the results of coercing a function pointer to a void * are implementation-dependent. The opposite (converting of data pointers to function pointers) is a recipe for a core dump. Also, unlike a data pointer, a function pointer cannot be dereferenced.

See also  Does It Make Sense to Splurge on a Laptop?
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist