A pointer can point to any element of the array, the array itself is a constant pointer.
Eg.:
int a[10], *p;
p= &a[3];
p= a; /* the same as p= &a[0] */
a[2]= *p;
a[3]= p[4];
a= p; /* WRONG! */
Some of them are: 1. char, short, int, long, float, double 2. pointers to these 3. arrays of these 4. arrays of pointers 5. pointers to arrays ...
nbejhewb kukbn oniiu nir8g bewgu
An array of pointers is a contiguous block of memory that contains pointers to other memory locations. They essentially allow non-contiguous memory locations to be treated as if they were an actual array.
i don't know ask someone else
If the array is static you can simply point at the first element. For dynamic arrays you can allocate a contiguous block to a single pointer which can then be subdivided using a one-dimensional array of pointer to pointers, each of which points to a one-dimensional array of pointers, each of which points to a separate object within the array. For extremely large arrays, however, it is better to split the elements into separate one-dimensional arrays, by creating a one-dimensional array of pointer to pointers first, then allocating each of those pointers to a separate one-dimensional array of pointers, each of which points to a separate one-dimensional array of objects. Either way, you must destroy all the individual arrays in the reverse order of creation.
Yes. All string variables are pointers as are other arrays.
That would include header files, data types, loops, functions, pointers, arrays
bmbmbvjmgjmgj
You would use an array of pointers to pointers whenever you wished to implement a dynamic multi-dimensional array of 3 or more dimensions. Every multi-dimensional array can ultimately be reduced to a one-dimensional array where each element is itself a one-dimensional array (an array of arrays). With fixed-size arrays, all elements can be allocated contiguously regardless of how many dimensions there are. Fixed size arrays can be allocated both statically (when the size is known at compile time) or dynamically (when the size is unknown at compile time). However with large arrays it is often necessary to divide the array into smaller subarrays each of which is allocated separately (non-contiguously with each other) and maintain a separate array of pointers to keep track of each of those subarrays. Although this consumes more memory than a contiguously-allocated array would, it has the added benefit in that each subarray need not be the same length, thus it can actually save memory overall. However, if we had several such arrays then we would need yet another array in order to keep track of them all, and this array would need to be an array of pointers to pointers.
POINTERS ARE USED TO STORE ADDRESS
Because of pointers and that all arrays are really pointers. A pointer something like *pointer can also be written as pointer[0] and *(pointer + 1) can also be written as pointer[1]
Simulating pointers typically refers to techniques used in programming languages that do not support direct pointer manipulation, such as Java or Python. Instead of using pointers to reference memory locations, these languages use object references or indices to achieve similar functionality. For example, arrays or lists can act as simulated pointers by allowing access to elements through their indices. This approach helps manage memory safely while still enabling dynamic data structures.