Introduction: C++ is a mid-level programming language as it offers low-level abstraction facilities (OS, system, and hardware), as well as high-level abstraction facilities (language features that hide and do many low-level functions in a single statement), and does not offer garbage collection (reorganizing or defragmenting used memory). One of the low-level abstraction facilities in C++ is a pointer. Pointers are simply variables that contain a memory address to allocated memory, rather it be memory used by another variable, an array, a function, an OOP object, or manually allocated memory, just to name a few. In machine language, the language that a processor understands and can interpret, there are no concepts of variables, functions, arrays, OOP objects, and so forth. To access data in machine language, we need to work directly with memory addresses. Here's an Assembly Language example: ; MOVE A VALUE INTO THE RAX REGISTER mov rax, 0x4A4F5921 ; MOVE VALUE IN RAX (64-bit ...
Introduction: C++ is a mid-level programming language as it offers low-level abstraction facilities (OS, system, and hardware), as well as high-level abstraction facilities (language features that hide and do many low-level functions in a single statement), and does not offer garbage collection (reorganizing or defragmenting used memory). One of the low-level abstraction facilities in C++ is a pointer. Pointers are simply variables that contain a memory address to allocated memory, rather it be memory used by another variable, an array, a function, an OOP object, or manually allocated memory, just to name a few. In machine language, the language that a processor understands and can interpret, there are no concepts of variables, functions, arrays, OOP objects, and so forth. To access data in machine language, we need to work directly with memory addresses. Here's an Assembly Language example: ; MOVE A VALUE INTO THE RAX REGISTER mov rax, 0x4A4F5921 ; MOVE VALUE IN RAX (64-bit ...