5.2 Универсальный указатель или указатель void (void *)
Указатель может содержать адрес любого типа данных (кроме указателя функции). Мы не можем оперировать объектом, на который указывает указатель, так как тип неизвестен. Мы можем использовать указатель для сравнения с другим адресом.voidvoidvoid
[ТОДО] Пример
Константный указатель и константа, указывающая на данные
Неконстантный указатель на константные данные: данные, указанные на НЕ МОГУТ быть изменены; но указатель МОЖЕТ быть изменен так, чтобы он указывал на другие данные.
Например
int i1 = 8, i2 = 9;
const int * iptr = &i1; // non-constant pointer pointing to constant data
// *iptr = 9; // error: assignment of read-only location
iptr = &i2; // okay
Постоянный указатель на неконстантные данные: данные, указывающие на CAN, могут быть изменены; но указатель НЕ МОЖЕТ быть изменен так, чтобы он указывал на другие данные.
Например
int i1 = 8, i2 = 9;
int * const iptr = &i1; // constant pointer pointing to non-constant data
// constant pointer must be initialized during declaration
*iptr = 9; // okay
// iptr = &i2; // error: assignment of read-only variable
Постоянный указатель на константные данные: данные, указывающие на НЕ МОГУТ быть изменены; и указатель НЕ МОЖЕТ быть изменен так, чтобы он указывал на другие данные.
Например
int i1 = 8, i2 = 9;
const int * const iptr = &i1; // constant pointer pointing to constant data
// *iptr = 9; // error: assignment of read-only variable
// iptr = &i2; // error: assignment of read-only variable
Непостоянный указатель на неконстантные данные: данные, указывающие на CAN, могут быть изменены; и указатель МОЖЕТ быть изменен так, чтобы он указывал на другие данные.
Например
int i1 = 8, i2 = 9;
int * iptr = &i1; // non-constant pointer pointing to non-constant data
*iptr = 9; // okay
iptr = &i2; // okay
Do'stlaringiz bilan baham: |