激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - C++ 的類型轉(zhuǎn)換詳解

C++ 的類型轉(zhuǎn)換詳解

2022-02-17 16:36ALL IN C C/C++

本篇文章是對C++ 類型轉(zhuǎn)換的詳細(xì)介紹,需要的朋友參考下,小編覺得這篇文章寫的不錯(cuò),希望能夠給你帶來幫助

一、C++ 類型轉(zhuǎn)換

1.靜態(tài)類型轉(zhuǎn)換

1.語法格式

?
1
static_cast<目標(biāo)類型> (標(biāo)識符)

2.轉(zhuǎn)化規(guī)則

在一個(gè)方向上可以作隱式轉(zhuǎn)換,在另外一個(gè)方向上就可以作靜態(tài)轉(zhuǎn)換。

?
1
2
3
4
int a = 10;
int b = 3;
cout<<static_cast<float>(a)/b<<endl; //float = int int = float
return 0;
?
1
2
int *p; void *q;
p = static_cast<int*>(q);
?
1
char *p = static_cast<char*>(malloc(100));

2.重解釋類型轉(zhuǎn)換

1.語法格式

?
1
reinterpret_cast<目標(biāo)類型> (標(biāo)識符)

2.轉(zhuǎn)化規(guī)則

將數(shù)據(jù)以二進(jìn)制存在形式的重新解釋,在雙方向上都不可以隱式類型轉(zhuǎn)換的,則需要重解釋類型轉(zhuǎn)換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    int x = 0x12345648;
    char *p = reinterpret_cast<char*>(&x);
    //char*p = static_cast<char*>(&x); error
    printf("%x\n",*p);
    int a[5] = {1,2,3,4,5};
    int *q = reinterpret_cast<int*>(a+1);
    printf("%x\n",*q);
    return 0;
}

C++ 的類型轉(zhuǎn)換詳解

3.常類型轉(zhuǎn)換

1.語法格式

?
1
const_cast<目標(biāo)類型> (標(biāo)識符) //目標(biāo)類類型只能是指針或引用。

2.語法規(guī)則

用來移除對象的常量性使用 const_cast 去除 const 限定的,目的不是為了修改它的內(nèi)容,使用 const_cast 去除 const 限定,通常是為了函數(shù)能夠接受這個(gè)實(shí)際參數(shù)。

?
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
void func(int & ref) //別人己經(jīng)寫好的程序或類庫
{
    cout<<ref<<endl;
}
int main(void)
{
    const int m = 1;
    func(const_cast<int&>(m));
    return 0;
}

脫掉const后的引用或指針可以改嗎

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
int main()
{
    const int x = 200;
    int & a =const_cast<int&>(x); // int &a = x;
    a = 300;
    cout<<a<<x<<endl;
    cout<<&a<<"---"<<&x<<endl;
    int *p =const_cast<int*>(&x); // int *p = &x;
    *p = 400;
    cout<<a<<*p<<endl;
    cout<<p<<"---"<<&x<<endl;
    struct A
    {
        int data;
    };
    const A xx = {1111};
    A &a1 = const_cast< A&>(xx);
    a1.data = 222;
    cout<<a1.data<<xx.data<<endl;
    A *p1 = const_cast<A*>(&xx);
    p1->data = 333;
    cout<<p1->data<<xx.data<<endl;
    return 0;
}

C++ 的類型轉(zhuǎn)換詳解

結(jié)論:可以改變 const 自定義類的成員變量,但是對于內(nèi)置數(shù)據(jù)類型,卻表現(xiàn)未定義行為

3.const 常變量(補(bǔ)充)

C++中 const 定義的變量稱為常變量。變量的形式,常量的作用,用作常量,常用于取代#define 宏常量

4.動態(tài)類型轉(zhuǎn)換

1.語法格式

?
1
dynamic_cast<目標(biāo)類型> (標(biāo)識符)

用于多態(tài)中的父子類之間的強(qiáng)制轉(zhuǎn)化

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!

原文鏈接:https://blog.csdn.net/qq_43414070/article/details/121021741

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 中文字幕在线免费 | 成人性视频免费网站下载软件 | 午夜视频在线看 | 国产小视频在线 | 三人弄娇妻高潮3p视频 | 一区二区久久久久草草 | 91网页视频入口在线观看 | 亚洲啪 | 久久骚| 国产一区二区三区高清 | 午夜久| 国产精品无码久久久久 | 久久久无码精品亚洲日韩按摩 | 伊人999 | 欧美一级免费在线观看 | 九草av| 国产欧美日本 | 一本色道久久99精品综合蜜臀 | 91在线免费观看 | 免费看真人a一级毛片 | 色婷婷综合久久久中文一区二区 | free台湾极品性hd | 久久精品国产亚洲7777小说 | 天天夜夜操操 | 在线播放免费视频 | 久久久久久三区 | 黄色7777 | 91视频网页| 国产精品一区久久久久 | 黄色网址入口 | 激情久久一区二区 | 九一成人| 久久思思爱 | 国产无遮挡一区二区三区毛片日本 | 一级毛片高清 | 成人免费影院 | 爱操av| 369看片你懂的小视频在线观看 | 亚州综合图片 | 少妇一级淫片免费放播放 | 亚洲一区二区三区在线看 |