c++17(18)-static_cast
生活随笔
收集整理的這篇文章主要介紹了
c++17(18)-static_cast
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
static_cast用于明確定義的轉換,包括安全強制轉換和不太安全但明白定義的轉換,還有窄轉換
#include <iostream> using namespace std; struct test1{int t1;int t2; } ; struct test2{int t1;int t2;double t3; } ; int main(int argc, char **argv) {int x1=100;long y1=static_cast<long>(x1);int x2=257;int y2=static_cast<unsigned char>(x2);cout<<y1<<" "<<x1<<endl;cout<<y2<<" "<<x2<<endl;test2 v2{11,22,33.33};cout<<v2.t1<<" "<<v2.t2<<" "<<v2.t3<<endl;void* tv2=static_cast<void *>(&v2);test1 *tv1;tv1=static_cast<test1 *>(tv2);cout<<tv1->t1<<" "<<tv1->t2<<" "<<*(static_cast<double*>(tv2+sizeof(int)*2))<<endl; return 0; }其中,
cout<<tv1->t1<<" "<<tv1->t2<<" "< :安全的轉換 *(static_cast<double*>(tv2+sizeof(int)*2)):不太安全但明白定義的轉換 100 100 1 257 11 22 33.33 11 22 33.33 請按任意鍵繼續. . .總結
以上是生活随笔為你收集整理的c++17(18)-static_cast的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核杂记(17)-内核链表结构
- 下一篇: Stream中toMap引发NullPo