C-приведение (T)
C-приведение (T) - это оператор явного преобразования типов, который был унаследован из языка C. В C++ его использование не рекомендуется, так как он не даёт компилятору достаточной информации о намерениях программиста и может выполнять опасные преобразования. Синтаксис <~c~>(T)value<~/c~> применяет приведение к типу <~c~>T<~/c~> к значению <~c~>value<~/c~>. C-приведение может выполнять <~c~>static_cast<~/c~>, <~c~>const_cast<~/c~> и <~c~>reinterpret_cast<~/c~> в зависимости от контекста, что делает его менее безопасным по сравнению с именованными приведениями.
Синтаксис
(T)value
Пример
Давайте приведём число с плавающей точкой к целому типу с помощью C-приведения:
#include <iostream>
using namespace std;
int main()
{
double num = 3.14;
int res = (int)num;
cout << res << endl;
return 0;
}
Результат выполнения кода:
3
Пример
Давайте приведём указатель на целое число к указателю на символ:
#include <iostream>
using namespace std;
int main()
{
int num = 65;
char* res = (char*)#
cout << *res << endl;
return 0;
}
Результат выполнения кода:
"A"
Пример
Давайте снимем константность с переменной с помощью C-приведения:
#include <iostream>
using namespace std;
int main()
{
const int num = 10;
int* res = (int*)#
*res = 20;
cout << num << endl;
return 0;
}
Результат выполнения кода:
20
Смотрите также
-
оператор
static_cast,
который выполняет безопасное приведение на этапе компиляции -
оператор
dynamic_cast,
который выполняет безопасное приведение полиморфных типов -
оператор
const_cast,
который снимает или добавляет константность -
оператор
reinterpret_cast,
который выполняет низкоуровневое переосмысление битов