We already know that the pointer is used to store variables of the variable address. We can also define another pointer to store the address of a pointer, that is, the pointer of the pointer. The pointer to define the pointer is similar to the method of defining a simple pointer. Just add an asterisk in front of the original asterisk, such as int ** Pointer. First, we must figure it out: the variable is stored in the variable. A certain data, the pointer is stored in the address of the variable, and the pointer's pointer is stored in the address of the pointer, when there is a definition: int var = 2; int * Pointer; int ** PTR_TO_PTR; then: Pointer = & var, * Pointer = var = 2, * PTR_TO_PTR = & POINTER, ** PTR_TO_PTR = POINTER = & var; We must ask this new skill to help us do something, pointer's pointer is no exception . This takes another concept, that is, the array of pointers. From the literal mean, the pointer array is an array that stores a set of address consecutive pointers. So what is the array of pointers? Sometimes we need to handle a large number of strings, when processing the string, the computer is difficult to identify the interrelationship between each string, if there is a large number of strings, it will be larger The degree of confusion. So we store the address of each of the first letters of each string in a pointer, when the system is called or sorted, as long as moving the corresponding pointer, no need to perform a large-scale string, This greatly improves the efficiency of the program. The pointer of each store character string address is stored in a two-way memory address, which also constitutes a pointer array, pointing to the pointer of this array, is a pointer of the pointer. In the program, the call to the array is a tricky problem. The use of pointers solves this problem, we can define a pointer to the first address of the array, because the array element is stored continuously, so finding the first address helps Further find other elements. When the array is called, simply call the pointer without calling the entire array. In fact, for functions, there is no function of calling the entire array, which makes the pointer to a bridge between the array with a program and a function. The role, and even in some environments where you can directly call or change the order of array, the simple call pointer is much easier than the call or moves the entire array, which increases the efficiency of the program to a considerable extent. For an array a [], we know that A can represent pointers to the array, and we can also use A [] to represent pointers to the two-dimensional array a [] [], so we draw the following conclusions: - arrays When the name is n, when the brackets are parentheses, the data of the array; - When the number of square brackets of the array name is less than N pairs, it is a pointer to the array element. This is not difficult to understand, but still give a simple example to explain: #include