一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - C/C++ - C++ 的類型轉換詳解

C++ 的類型轉換詳解

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

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

一、C++ 類型轉換

1.靜態類型轉換

1.語法格式

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

2.轉化規則

在一個方向上可以作隱式轉換,在另外一個方向上就可以作靜態轉換。

?
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.重解釋類型轉換

1.語法格式

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

2.轉化規則

將數據以二進制存在形式的重新解釋,在雙方向上都不可以隱式類型轉換的,則需要重解釋類型轉換

?
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++ 的類型轉換詳解

3.常類型轉換

1.語法格式

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

2.語法規則

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

?
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
void func(int & ref) //別人己經寫好的程序或類庫
{
    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++ 的類型轉換詳解

結論:可以改變 const 自定義類的成員變量,但是對于內置數據類型,卻表現未定義行為

3.const 常變量(補充)

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

4.動態類型轉換

1.語法格式

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

用于多態中的父子類之間的強制轉化

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

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

延伸 · 閱讀

精彩推薦
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
主站蜘蛛池模板: 五月天国产视频 | 师尊被各种play打屁股 | 日韩欧美a | 亚洲无人区乱码中文字幕 | 国产福利兔女郎在线观看 | 亚洲精品在线免费 | α片免费| 福利片福利一区二区三区 | gav男人天堂| 楚乔传第二部免费播放电视连续剧 | 91超级碰| 国产久热精品 | 国产一区风间由美在线观看 | 欧美春宫 | 国产一级毛片国语版 | 四虎新网站 | 免费网站国产 | a一级毛片录像带 录像片 | 国产成人综合视频 | 久久国产视频网 | 成人国产在线播放 | chinese男同志同性twink | 青草网在线观看 | 青青久久精品国产 | 干美女视频| 亚洲国产剧情中文视频在线 | 色愉拍亚洲偷自拍 | 好男人好资源在线观看 | 2021久久| 2020韩国三级理论在线观看 | 天天澡夜夜澡狠狠澡 | 国产免费福利片 | 国产亚洲精品高清在线 | 搓光美女衣| 好妈妈7在线观看高清 | 嫩草影院永久一二三入口 | 耽美肉文高h | 国产色综合久久五月色婷婷中文 | 国产日日操 | 黑人好大好硬好深好爽想要h | 男人影院在线观看 |