最新要闻
- 当前速看:《生化危机4:重制版》阿什莉服装Mod公布 看了把持不住
- 天天亮点!CPU占用暴降 SSD提速百倍:《暗黑4》将支持微软DX游戏神技
- 今日热讯:关于大国竞争,“修昔底德陷阱”提出者谈到了“澶渊之盟”
- 合资轿车雪上加霜!上汽名爵最帅轿跑MG7上市:11.98万起
- 新动态:ROG游戏手机7跑分首曝:二代骁龙8 134.6万冠绝全球
- 规模或超90%!流媒体巨头Hulu国内被曝大裁员
- JOLED破产 日本OLED面板技术押错宝:弯道超车失败
- 当前动态:骁龙8cx Gen 4处理器跑分曝光:12核性能大跌眼镜 仅苹果M2 Max 1/3
- 焦点!一排小草怎么画简单好看_一排小草怎么画简笔画
- 当前快讯:Win12正全力开发!微软重构操作系统底层:模块化设计
- 【新视野】宣称能跑100公里!男子网购电动车续航打折:法院判退一赔三
- 全球快资讯:“雪糕刺客”的仁慈!钟薛高用文心一言打造雪糕 仅售3.5元
- 即时看!口腔溃疡总不好 可能是大病预警!“偏方”都没用!
- 今日讯!比5G强10倍!工信部:中国已成立6G工作组推动关键技术研究
- 全球视点!韩瑟冻干粉怎么样_韩瑟化妆品怎么样
- 果然来了!电商偷跑索尼PS5 Slim游戏机:新外观 更轻薄
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
78.类型转换
1.C语言中的类型转换
C语言和C++都是强类型语言,如果赋值运算符左右两侧变量的类型不同,或形参与实参的类型不匹配,或返回值类型与接收返回值的变量类型不一致,那么就需要进行类型转换。
C语言中有两种形式的类型转换,分别是隐式类型转换和显式类型转换:
●隐式类型转换:编译器在编译阶段自动进行,能转就转,不能转就编译失败。●显式类型转换:需要用户自己处理,以(指定类型)变量的方式进行类型转换。需要注意的是,只有相近类型之间才能发生隐式类型转换,比如int和double表示的都是数值,只不过它们表示的范围和精度不同。而指针类型表示的是地址编号,因此整型和指针类型之间不会进行隐式类型转换,如果需要转换则只能进行显式类型转换。比如:
(资料图)
为什么C++需要四种类型转换int main(){//隐式类型转换int i = 1;double d = i;cout << i << endl;cout << d << endl;//显式类型转换int* p = &i;int address = (int)p;cout << p << endl;cout << address << endl;return 0;}
2.为什么C++需要四种类型转换
C风格的转换格式虽然很简单,但也有很多缺点:
●隐式类型转换在某些情况下可能会出问题,比如数据精度丢失。●显式类型转换将所有情况混合在一起,转换的可视性比较差。 因此C++为了加强类型转换的可视性,引入了四种命名的强制类型转换操作符,分别是static_cast、reinterpret_cast、const_cast和dynamic_cast。
————————————————原文链接:https://blog.csdn.net/chenlong_cxy/article/details/127144522
3.隐式转换
当一个值拷贝给另一个兼容类型的值时,隐式转换会自动进行。所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。
short a=2000;int b;b=a;
在这里,a在没有任何显示操作符的干预下,由short类型转换为int类型。这就是标准转换,标准转换将影响基本数据类型,并允许数字类型之间的转换(short到int,int到float,double到int…),和bool与其他数字类型转换,以及一些指针转换。
对于非基本类型,数组和函数隐式地转换为指针,并且指针允许如下转换:
●NULL指针可以转换为任意类型指针●任意类型的指针可以转换为void指针●指针向上提升:一个派生类指针可以被转换为一个可访问的无歧义的基类指针,不会改变它的const或volatile属性原文链接:https://blog.csdn.net/luolaihua2018/article/details/111996610
3.1为什么要进行隐式转换
C++面向对象的多态特性,就是通过父类的类型实现对子类的封装。通过隐式转换,你可以直接将一个子类的对象使用父类的类型进行返回。再比如,数值和布尔类型的转换,整数和浮点数的转换等。某些方面来说,隐式转换给C++程序开发者带来了不小的便捷。C++是一门强类型语言,类型的检查是非常严格的。如果没有类型的隐式转换,这将给程序开发者带来很多的不便。
3.2C++隐式转换的原则
●基本数据类型基本数据类型的转换以取值的范围作为转换基础(保证精度不丢失)。隐式转换发生在从小到大的转换中。比如从char转换为int。从int到long。
●自定义对象子类对象可以隐式的转换为父类对象
3.3C++隐式转换发生条件
●混合类型的算术运算表达式中。例如:
int a = 3;double b = 4.5;a + b; // a将会被自动转换为double类型,转换的结果和b进行加法操作
●不同类型的赋值操作。例如:
int a = true ; ( bool 类型被转换为 int 类型)int * ptr = null;(null被转换为 int *类型
●函数参数传值。例如:
void func( double a);func(1); // 1被隐式的转换为double类型1.0
●函数返回值。例如:
double add( int a, int b){ return a + b;} //运算的结果会被隐式的转换为double类型返回
#以上四种情况下的隐式转换,都满足了一个基本原则:低精度 –> 高精度转换。不满足该原则,隐式转换是不能发生的。
3.4隐式转换的风险
类的隐式转换:在类中,隐式转换可以被三个成员函数控制:
- 单参数构造函数:允许隐式转换特定类型来初始化对象。
- 赋值操作符:允许从特定类型的赋值进行隐式转换。
- 类型转换操作符:允许隐式转换到特定类型
隐式转换的风险一般存在于自定义的类构造函数中。
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象。
#include #include#include using namespace std; class Str{public:// 用C风格的字符串p作为初始化值Str(const char*p) {cout << p << endl;}//本意是预先分配n个字节给字符串Str(int n) {cout << n << endl;} }; int main(void) { Str s = "Hello";//隐式转换,等价于Str s = Str("Hello"); //下面两种写法比较正常:Str s2(10); //OK 分配10个字节的空字符串Str s3 = Str(10); //OK 分配10个字节的空字符串 //下面两种写法就比较疑惑了:Str s4 = 10; //编译通过,也是分配10个字节的空字符串Str s5 = "a"; //编译通过,分配int(‘a’)个字节的空字符串,使用的是Str(int n)构造函数//s4 和s5 分别把一个int型和char型,隐式转换成了分配若干字节的空字符串,容易令人误解。return 0;}/* *Hello10101097*/
例二如下例:
#include #include#include using namespace std;class Test {public:Test(int a):m_val(a) {}bool isSame(Test other){return m_val == other.m_val;}private:int m_val;}; int main(void) { Test a(10);if (a.isSame(10)) //该语句将返回true{cout << "隐式转换" << endl;}return 0;}
本来用于两个Test对象的比较,竟然和int类型相等了。这里就是由于发生了隐式转换,实际比较的是一个临时的Test对象。这个在程序中是绝对不能允许的。
3.5禁止隐式转换
隐式转换存在风险多,那如何能够禁止隐式转换的发生呢。C++中提供了explicit关键字,在构造函数声明的时候加上explicit关键字,能够禁止隐式转换。使用方法如下:
class Test{explicit Test( int a);…… }
#include #include#include using namespace std;class Str{public:// 用C风格的字符串p作为初始化值explicit Str(const char*p) {cout << p << endl;}//本意是预先分配n个字节给字符串explicit Str(int n) {cout << n << endl;} };class Test {public:explicit Test(int a):m_val(a) {}bool isSame(Test other){return m_val == other.m_val;}private:int m_val;}; int main(void) { Test a(10);if (a.isSame(10)) 编译不通过{cout << "隐式转换" << endl;} Str s = "Hello";//编译不通过 //下面两种写法比较正常:Str s2(10); //OK 分配10个字节的空字符串Str s3 = Str(10); //OK 分配10个字节的空字符串 //下面两种写法就比较疑惑了:Str s4 = 10; //编译不通过Str s5 = "a"; //编译不通过return 0;}
4.显式转换
C++是一门强类型的语言,许多转换,特别是那些暗示值的不同解释的转换,需要显式转换,在c++中称为类型转换。泛型类型转换有两种主要语法:函数型和类c型:
double x = 10.3;int y;y = int (x); // functional notationy = (int) x; // c-like cast notation
这些类型转换的通用形式的功能足以满足大多数基本数据类型的需求。但是,这些操作符可以不加区别地应用于类和指向类的指针上,这可能导致代码在语法正确的情况下导致运行时错误。编译器检查不出错误,可能导致运行时出错。例如,以下代码在编译时不会出现错误:
// class type-casting#include using namespace std; class Dummy {double i, j;}; class Addition {int x, y;public:Addition(int a, int b) { x = a; y = b; }int result() { return x + y; }}; int main() {//情况一,通过强制类型转换,不同类型的指针可以随意转换,编译器不报错Dummy d;Addition * padd;padd = (Addition*)&d;cout << padd->result()<
程序声明了一个指向Addition的指针,但随后使用显式类型转换将另一个不相关类型对象的引用赋给该指针:
padd = (Addition*) &d;
不受限制的显式类型转换允许将任何指针转换为任何其他指针类型,而不依赖于指针所指向的类型。后面成员函数result的调用将产生运行时错误或其他一些意外结果。
其他情况:
●将指向const对象的指针转换成非const对象的指针●可能将基类对象指针转成了派生类对象的指针总结:编译时报错优于运行时报错,所以C++引入的四种类型转换,不同场景下不同需求使用不同的类型转换方式,同时有利于代码审查。
●static_cast●const_cast●dynamic_cast●reinterpret_cast
dynamic_cast (expression)reinterpret_cast (expression)static_cast (expression)const_cast (expression)
static_cast
static_cast可以在类相关的指针中完成转换,不仅是向上转换,还有向下转换。在运行时期间不执行任何检查,以确保正在转换的对象实际上是目标类型的完整对象。因此它依靠编译器确保转换是否安全,另一方面,它没有dynamic_cast运行时检查的开销。
上面的代码可以编译通过,但很明显b指向的是一个不完整的对象,很可能在运行时发生错误。
使用场景:基本数据类型之间的转换使用,例如float转int,int转char等,在有类型指针和void*之间转换使用,子类对象指针转换成父类对象指针也可以使用static_cast。
非多态类型转换一般都使用static_cast,而且最好把所有的隐式类型转换都是用static_cast进行显示替换,不能使用static_cast在有类型指针之间进行类型转换。————————————————原文链接:https://blog.csdn.net/luolaihua2018/article/details/111996610
任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。例如, 通过将一个运算对象强制转换成 double 类型就能使表达式执行浮点数除法:
//进行强制类型转换以便执行浮点数除法double slope = static_cast(j) / i;
当需要把一个较大的算术类型赋值给较小的类型时,static_cast非常有用。此时,强制类型转换告诉程序的读者和编译器:我们知道并且不在乎潜在的精度损失。一般来说,如果编译器发现一个较大的算术类型试图赋值给较小的类型,就会给出警告信息;但是当我们执行了显式的类型转换后,警告信息就会被关闭了。 static_cast对于编译器无法自动执行的类型转换也非常有用。 例如,我们可以使 用static_cast找回存在于void*指针(参见2.3.2节, 第50页)中的值
void *p = &d;//正确:任何非常量对象的地址都能存入void*//正确:将void*转换回初始的指针类型double *dp = static_cast(p);
当我们把指针存放在void*中, 并且使用static_cast将其强制转换回原来的类型时,应该确保指针的值保持不变。 也就是说,强制转换的结果将与原始的地址值相等,因此我们必须确保转换后所得的类型就是指针所指的类型。 类型一旦不符,将产生未定义的后果。
const_cast
这种类型的类型转换操作指针所指向的对象的常量,可以是要设置的,也可以是要删除的。例如,为了将const指针传递给需要非const实参的函数
// const_cast#include using namespace std; void print(char * str){ cout << str << "\n";} int main () { const char * c = "sample text"; print ( const_cast (c) ); return 0;}
上面的例子保证可以工作,因为函数print不会写指向的对象。但是请注意,移除指向对象的常量以实际写入它会导致未定义的行为。
int main(){ int data = 10; const int *cpi = &data; int *pi = const_cast(cpi); const int *cpii = const_cast(pi); return 0;}
使用场景:用于常量指针或引用与非常量指针或引用之间的转换,只有const_cast才可以对常量进行操作,一般都是用它来去除常量性,去除常量性是危险操作,还是要谨慎操作。
const_cast只能改变运算对象的底层const(参见C++ Primer 2.4.3节, 第57页)
const char *pc; char *p = const_cast(pc);//正确:但是通过p写值是未定义的行为
对于将常量对象转换成非常量对象的行为,我们一般称其为“ 去掉const性质(cast away the const) ”。 一旦我们去掉了某个对象的const性质,编译器就不再阻止我们对该对象进行写操作了。如果对象本身不是一个常量,使用强制类型转换获得写权限是合法的行为。然而如果对象是一个常记,再使用const_cast 执行写操作就会产生未定义的后果。
只有const_cast能改变表达式的常量属性,使用其他形式的命名强制类型转换改变表达式的常量属性都将引发编译器错误。同样的,也不能用const_cast 改变表达式的类型:
const char *cp; //错误:static_cast不能转换掉const性质 char *q = static_cast(cp); static_cast(cp);//正确:字符串字面值转换成string类型const_cast(cp);//错误:const_cast只改变常量属性
const_cast 常常用于有函数重载的上下文中,关丁函数重载将在C++ Primer 6.4节(第208页) 进行详细介绍。
reinterpret_cast
reinterpret_cast可以将指针类型任意转换,甚至是不相关的类之间,
int main() { int data = 10; int *pi = &data; float *fpi = reinterpret_cast(pi); return 0;}
使用场景:没啥场景,类似C语言中的强制类型转换,什么都可以转,万不得已不要使用,一般前三种转换方式不能解决问题了使用这种强制类型转换方式。操作结果是从一个指针到另一个指针的值的简单二进制拷贝。
允许所有的指针转换:既不检查指针所指向的内容,也不检查指针类型本身。
可以由reinterpret_cast执行但不能由static_cast执行的转换是基于重新解释类型的二进制表示的低级操作,在大多数情况下,这将导致特定于系统的代码,因此不可移植。
class A { /* ... */ };class B { /* ... */ };A * a = new A;B * b = reinterpret_cast(a);
这段代码可以编译,尽管它没有多大意义,因为现在b指向一个完全不相关且可能不兼容的类的对象。解引用b是不安全的。
它还可以强制转换指向或来自整数类型的指针。这个整数值表示指针的格式与平台有关。唯一的保证是,将指针转换为足够大的整数类型以完全包含它(如intptr_t),保证能够将其转换回有效的指针。————————————————原文链接:https://blog.csdn.net/luolaihua2018/article/details/111996610
reinterpret_cast通常为运算对象的位模式提供较低层次上的重新解释。举个例子,假设有如下的转换
int *ip; char *pc = reinterpret_cast(ip);
我们必须牢记pc所指的真实对象是一个int而非字符,如果把pc当成普通的字符指针使用就可能在运行时发生错误。例如:
string str(pc);
可能导致异常的运行时行为。
使用reinterpret_cast是非常危险的,用pc初始化str的例子很好地证明了这 一点。其中的关键问题是类型改变了,但编译器没有给出任何警告或者错误的提示信息。当我们用一个int的地址初始化pc时,由于显式地声称这种转换合法,所以编译器不会 发出任何警告或错误信息。接下来再使用pc时就会认定它的值是char*类型,编译器没法知道它实际存放的是指向int的指针。最终的结果就是,在上面的例子中虽然用pc初始化str没什么实际意义,甚至还可能引发更糟糕的后果,但仅从语法上而言这种操作无可指摘。查找这类问题的原因非常困难,如果将ip强制转换成pc的语句和用pc初始化string对象的语句分属不同文件就更是如此。
建议:避免强制类型转换
强制类型转换干扰了正常的类型检查(参见C++ Primer 2.2.2节, 第42页),因此我们强烈建议程序员避免使用强制类型转换。这个建议对于reinterpret_cast尤其适用,因为此类类型转换总是充满了风险。在有重载函数的上下文中使用const_cast无可厚非,关于这一点将在C++ Primer 6.4节(第208页)中详细介绍;但是在其他情况下使用const_cast也就意味着程序存在某种设计缺陷。其他强制类型转换,比如static_cast和dynamic_cast,都不应该频繁使用。每次书写了一条强制类型转换语句,都应该反复斟酌能否以其他方式实现相同的目标。就算实在无法避免,也应该尽量限制类型转换值的作用域,并且记录对相关类型的所有假定,这样可以减少错误发生的机会。
旧式的强制类型转换
在早期版本的C++语言中,显式地进行强制类型转换包含两种形式:
type (expr);//函数形式的强制类型转换(type) expr;//c语言风格的强制类型转换
根据所涉及的类型不同,旧式的强制类型转换分别具有与const_cast、static_cast或reinterpret_cast相似的行为。当我们在某处执行旧式的强制类型转换时,如果换成const_cast和static_cast也合法,则其行为与对应的命名转换一致。如果替换后不合法,则旧式强制类型转换执行与reinterpret_cast类似的功能:
char *pc = (char*) ip; // ip是指向整数的指针
的效果与使用reinterpret_cast一样。
关键词:
-
【独家】【Visual Leak Detector】配置项 StartDisabled
使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍VLD配置文件中配置项StartDisabled的使用方法。
来源: 【独家】【Visual Leak Detector】配置项 StartDisabled
78.类型转换
环球快报:2023年找工作的心酸历程
全球热议:ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
世界即时看!SSM框架笔记 庆祝学习SSM框架结束!!!
世界速读:【财经分析】债市短期表现向好 机构操作犹存分歧
当前速看:《生化危机4:重制版》阿什莉服装Mod公布 看了把持不住
天天亮点!CPU占用暴降 SSD提速百倍:《暗黑4》将支持微软DX游戏神技
具体如何编写信号与槽
今日热讯:关于大国竞争,“修昔底德陷阱”提出者谈到了“澶渊之盟”
合资轿车雪上加霜!上汽名爵最帅轿跑MG7上市:11.98万起
新动态:ROG游戏手机7跑分首曝:二代骁龙8 134.6万冠绝全球
规模或超90%!流媒体巨头Hulu国内被曝大裁员
JOLED破产 日本OLED面板技术押错宝:弯道超车失败
当前动态:骁龙8cx Gen 4处理器跑分曝光:12核性能大跌眼镜 仅苹果M2 Max 1/3
【世界速看料】76.算术运算符
世界动态:PfSense pfBlockerNG 未授权RCE漏洞(CVE-2022-31814)
热点!Unity中基于EPPLUS的Excel转换以及Json数据读取
全球速讯:c# 对序列化类XMLSerializer 二次封装泛型化方便了一些使用的步骤
新华社权威快报|首次纳入肝素类药品 第八批药品集采平均降价56%
焦点!一排小草怎么画简单好看_一排小草怎么画简笔画
当前快讯:Win12正全力开发!微软重构操作系统底层:模块化设计
【新视野】宣称能跑100公里!男子网购电动车续航打折:法院判退一赔三
全球快资讯:“雪糕刺客”的仁慈!钟薛高用文心一言打造雪糕 仅售3.5元
即时看!口腔溃疡总不好 可能是大病预警!“偏方”都没用!
今日讯!比5G强10倍!工信部:中国已成立6G工作组推动关键技术研究
pthread库实现简单并行程序:Hello
全球焦点!日本央行官员暗示调整YCC政策 日债收益率周三全线回落
全球快资讯:净利润同比增长超62% 中国石油2022年业绩创历史最好水平
全球视点!韩瑟冻干粉怎么样_韩瑟化妆品怎么样
果然来了!电商偷跑索尼PS5 Slim游戏机:新外观 更轻薄
全球热头条丨SSD性能狂飙 追赶DDR5内存 PCIe 6.0硬盘预计2026年问世
听到吧唧嘴就抓狂:一男子已4年不理家人
头条:德国掀桌 欧盟让步 “2035禁燃令”为何不再禁燃油车?
男子测智商竟被推荐花98元包月:付了钱也没看到结果
【独家焦点】郑氏点银:黄金有望震荡冲1980,原油背离逼空反弹待回落
【天天快播报】记录--开局一张图,构建神奇的 CSS 效果
java泛型和通配符
环球微资讯!玩家期待已久!任天堂限定版Switch来了
全球今日报丨不拍蒜也断?张小泉斩骨刀斩骨时断裂 客服:与使用力度、角度有关
车被撞废人完好无损!比亚迪汉DM-i车主转头定了一台海豹
环球快资讯丨为何Redmi敢首发高通第二代骁龙7+?员工解释原因
男子驾车途中昏迷撞走公司大门 罪魁祸首竟是一只马蜂
全球看热讯:惠州治皮肤过敏较好的医院
全球微头条丨用 Go 剑指 Offer 07. 重建二叉树
快资讯:IDEA使用技巧和注册教程
全网最详细中英文ChatGPT-GPT-4示例文档-最强JS助手聊天机器人应用从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/
全球快看点丨下载安装MyAQL数据库8.0.30
NX二次开发:Checkmate例子根据dfa文件检查模型数据
天天即时看!广东佛山发生3.4级地震 广州有震感!你感受到没
环球微动态丨火狐良心!至少支持Win7/8.1到2024年第3季度
天天快看点丨质量堪忧 多批次行车记录仪抽检不合格 纽曼上黑榜
天天通讯!360版ChatGPT要来了!周鸿祎:大家给起个名字
焦点简讯:男子回应合成迪丽热巴视频来龙去脉:不想跟其他博主同质化
即时:钟薛高推出3.5元雪糕上市时间
MySQL的安装
世界资讯:python中函数的返回值详解
环球速读:关于Web的欢迎页面的开发设置
焦点热讯:Whats's New In Seata 1.6.x
环球短讯!Powerpoint教程_编程入门自学教程_菜鸟教程-免费教程分享
热点评!首批两只新能源领域REITs上市首日均收涨
头条:前搜狗CEO王小川成立人工智能公司:中国需要自己的OpenAI
观速讯丨美团回应限制大龄外卖骑手:入职年龄并未调整 能干到57岁
环球快报:经济学家林毅夫:AI可让人们享受生活 未来每周只工作一天
历史上首次!佳能将推可自动对焦的移轴镜头
全球热点!关注!有答复了,《关于加快发展文化创意产业,培育福鼎经济新亮点的建议》。
lmxcms代码审计学习
【天天播资讯】0功耗电子纸数字海报问世:不换画面不耗电
今日视点:30年大品牌 金邦2TB SSD到手549元:长寿TLC+PCIe 4.0性能
中国高铁首次出海!雅万高铁全线轨道铺通:最高时速350公里
每日报道:比亚迪汽车毛利率25.9%!李想夸赞:比特斯拉强太多
全球速递!俄亥俄河一载1400吨有毒物质驳船沉没:尚不清楚是否发生泄漏
世界报道:太极股份:截止2023年3月20日,公司的股东户数为36798户
Go语言:编写一个 WebsiteRacer 的函数,用来对比请求两个 URL 来「比赛」,并返回先响应的 URL。如果两个 URL 在 10 秒内都未返回结果
全球实时:一文带你搞懂如何优化慢SQL
焦点快报!Dijkstar-And-Astar算法
用上ChatGPT的这几个功能,你的开发效率不高都难
联想y400什么时候上市的?联想y400笔记本配置
地下城与勇士龙年套装哪个好?地下城与勇士龙年套装有几个宝珠?
HTCG28什么时候上市的?HTCG28手机参数
华为C8813Q如何装sim卡?华为C8813Q手机参数
gprs套餐费是什么意思?怎么关闭GPRS套餐?
楼市回暖背后:多城二手房在售量持续增加
环球关注:编写高质量c#代码的10个建议
环球即时看!插入排序
【世界速看料】【Visual Leak Detector】配置项 StackWalkMethod
环球新消息丨vivo将整合旗下iQOO手机:开启降本增效
王传福:比亚迪目标年底成为中国最大汽车制造商
全球热讯:全球最大游戏展危险了!世嘉、腾讯均宣布不参加本届E3
绿巨人前女友15年后回归漫威!《美国队长4》新剧照曝光:黑人美队现身
环球即时看!联名高达!ROG游戏手机7系列来了:二代骁龙8+6000mAh电池
全球视讯!中国代表敦促个别国家立即解除对叙利亚单边制裁
天天微动态丨KubeVela 1.7 版本解读:接管你的已有工作负载
焦点报道:接通率维持 66% 以上,为什么火山引擎 VeDI 能让企业智能外呼不再难?
【全球快播报】《Python编程快速上手—让繁琐工作自动化》实践项目答案:第四章
天天简讯:四方达(300179)3月28日主力资金净卖出861.62万元
微信QQ出现功能异常 官方紧急修复:微信支付等功能已恢复
天天速看:男子陵园祭祖车雷达显示全是人 网友:啥车?我想试试
PS主机神作好评仅有32%!顽皮狗回应《最后生还者》PC优化翻车
全球速读:专家谈ChatGPT:或让更多人享受生活 一周只工作一天