当前位置:首页>面试真题>【面试真题】C++ 的几种类型转换有什么区别?

【面试真题】C++ 的几种类型转换有什么区别?

  • 2026-08-10 22:22:32
【面试真题】C++ 的几种类型转换有什么区别?

字数 2965,阅读大约需 15 分钟

【面试真题】C++ 的几种类型转换有什么区别?

类型转换是 C++ 面试里最稳的常驻题之一,几乎每场都会问,而且能拉开差距。背得出"四种转换运算符"只是及格线,真正考你的是"什么场景用哪个、为什么 C 风格转换要少用"。本文用问答的方式,把 C++ 的类型转换一次讲透。


一、先说结论:四种转换运算符 + 一种老式

❓ 说说 C++ 的类型转换有几种,有什么区别?

✅ C++ 里写类型转换,主流方式有 5 种

  • • 4 个命名的转换运算符(C++ 引入,各有明确用途):
    • • static_cast —— 通用转换
    • • const_cast —— 增删 const
    • • reinterpret_cast —— 重新解释比特
    • • dynamic_cast —— 安全向下转型
  • • 1 种 C 风格转换(从 C 继承,啥都能干):
    • • (int)x 或 int(x)

一句话区分:

转换方式
一句话
static_cast
我知道类型相关,编译期转
const_cast
我只动 const,不改类型
reinterpret_cast
我重新解释底层比特
dynamic_cast
我要在运行期检查身份

下面逐个拆开讲。

💡 加分点:这四种运算符的命名都很"啰嗦"——这是故意的。C++ 之父 Bjarne 说得好:"丑陋的语法应该用在丑陋的操作上"。这些名字又长又难看,能逼你少写、想清楚再写,而且 grep 一搜就能定位所有转型点。


二、为什么不用 C 风格转换?

❓ C 风格转换 (int)x 又短又好用,为什么 C++ 还要搞四个新的?

✅ 因为 C 风格转换太万能、太危险。它能同时干好几件毫不相干的事,编译器还一声不吭。

const int* cp = nullptr;// C 风格一把梭int* p = (int*)cp;// 它干了啥?去掉了 const// 还顺手转了指针类型// 编译器一个字都不报 ⚠️

问题在于:(int*)cp 这一行,你根本看不出它是"去 const"还是"改类型"还是"重新解释比特"。一旦改错,运行期才崩

四种命名的转换运算符正好解决了这个痛点:

const int* cp = nullptr;// 明确表达:我要去 constint* p = const_cast<int*>(cp);// 类型若不匹配,编译直接报错

🎯 核心优势:每种运算符名字就写明了意图,而且类型不对会在编译期直接拦下。代码可读性、安全性都上一档。所以现代 C++ 的规矩是:禁用 C 风格转换,一律用命名的转换运算符


三、static_cast:最常用的那个

❓ static_cast 什么时候用?

✅ 它是日常最常用的转换运算符,负责"相关类型之间的显式转换"。典型场景:

  • • 数值类型之间(double → int 等);
  • • void* 和具体类型指针之间;
  • • 子类指针向基类(向上转型);
  • • 整型转枚举。
double d = 3.14;// 截断小数,安全int n = static_cast<int>(d);// n == 3
int x = 10;// int* -> void* 隐式void* p = &x;// void* -> int* 必须显式int* q = static_cast<int*>(p);// ✅ 编译通过

它的边界:类型之间必须"沾点边"。风马牛不相及的类型,编译期直接拒绝:

struct A {};struct B {};A a;// 无关类型,编译报错// auto p = static_cast<B*>(&a);// ❌ 类型不相关

⚠️ 注意:static_cast 不做运行期检查。用它做向下转型(基类→子类)时,若实际对象不是那个子类,结果是未定义行为。这种"运行期才知道对不对"的场景,要用 dynamic_cast(见后文)。

向上转型 vs 向下转型,是这块最容易混的概念,顺手理清:

  • • 向上转型(子→基):永远安全,甚至能隐式发生,连运算符都不必写;
  • • 向下转型(基→子):危险,因为编译器不知道指针实际指的到底是不是那个子类。static_cast 闭眼转,dynamic_cast 才会帮你查。

记住一句口诀:向上转型是免费的午餐,向下转型才是转换运算符的主场


四、const_cast:专门动 const 的"手术刀"

❓ const_cast 是干嘛的?

✅ 它是唯一能增删 const(或 volatile)的转换运算符,不改类型本身。典型场景:调用一个参数没加 const、但你确定它不会改数据的旧接口。

const char* s = "hello";// 去掉 const,拿到可写指针char* p = const_cast<char*>(s);// *p = 'H';  // ❌ 改只读内存,UB

反过来加 const 也行:

int x = 10;// 给可写数据"穿"上 const 外衣const int* cp = const_cast<const int*>(&x);// 之后通过 cp 不能改 x

⚠️ 大坑(高频考点):const_cast 去掉 const 本身不违法,但真去改一个原本就是 const 的对象,是未定义行为(UB)。const_cast 只在"对象本来就不是 const,只是被 const 指针挡住了"时才安全。

一句话:const_cast 是把手术刀,切 const、不切类型。想同时改类型又去 const?那得两把刀分开用。


五、reinterpret_cast:最危险的那把刀

❓ reinterpret_cast 什么时候用?

✅ 它做的是最底层的重新解释——直接把一段内存的比特换个角度去看。几乎不做任何检查,用错就是灾难。典型场景:

  • • 指针和整数之间互转(看地址值);
  • • 不相关类型的指针互转(小心!);
  • • 函数指针转换(极少用)。
int n = 0x41424344;// 整数的字节,按 char 读char* p = reinterpret_cast<char*>(&n);// 小端机读到 'D','C','B','A'// 大端机反之

指针和整数互转,要用 <cstdint> 的 intptr_t——它是专门为"装得下指针"而设计的整数类型,跨平台更稳:

#include <cstdint>int x = 42;// 指针转整数,看地址值// 用 intptr_t 而不是 long// long 在 Win64 只有 4 字节,装不下intptr_t a =    reinterpret_cast<intptr_t>(&x);// 再转回指针int* p = reinterpret_cast<int*>(a);// *p == 42

⚠️ 告诫:reinterpret_cast 是最后手段。日常业务代码几乎不该出现,主要用在序列化、网络协议、跟 C 库打交道等底层场景。面试里如果候选人张口就 reinterpret_cast,基本会被追问"为什么需要"

还有个坑:用 reinterpret_cast 转出来的指针,不能直接读写——它只是"换个视角看地址",真正读写前通常还要转回原类型。跨类型读写属于未定义行为的重灾区。


六、dynamic_cast:唯一会"检查"的转型

❓ dynamic_cast 和其他三个有什么本质区别?

✅ 这是最特别的一个,区别大到可以单独成派。先看一句话总结:

其他三个转换运算符(static_cast/const_cast/reinterpret_cast)只要能编译通过,转换前后的指针值不会变——非空还是非空、指向哪还是哪。dynamic_cast 不一样:它会在运行期"查身份",查不到就让结果变 nullptr

也就是说,dynamic_cast 是唯一一个能回答"这个父类指针到底是不是某个子类"的转换运算符。它不是"换个类型标签",而是"运行期做一次类型判定"。换句话说——dynamic_cast 是真正的运行时类型转换(RTTI,Runtime Type Information),这也是 C 风格转换根本不具备的能力:C 风格转换编译期就定死,没有任何运行期类型识别机制。

它的专职是多态类型的安全向下转型。前提:基类必须至少有一个虚函数(多态类型),否则编译报错。

经典场景——单父类多子类,判断父类指针实际指向哪个子类:

class Animal {public:    // 多态类型:必须有虚函数    // 虚析构就够,无需别的    virtual ~Animal() = default;};class Dog : public Animal {};class Cat : public Animal {};

把它当"类型探测仪"——封装成一个判断函数:

bool isDog(Animal* a){    // 转 Dog*,非空就是 Dog    return dynamic_cast<Dog*>(a)           != nullptr;}

测试一下:

Animal* a = rand() % 2    ? (Animal*)new Cat()    : (Animal*)new Dog();// 随机产生 Cat 或 Dogstd::cout << isDog(a) << std::endl;// 真是 Dog 打印 1,否则 0

这就是 dynamic_cast 的杀手锏:在运行期判断父类指针(或引用)是否真的指向(或绑定)某个子类的实例。其他几个转换运算符都做不到。

⚠️ 关键对比(高频考点):把上面 isDog 里的 dynamic_cast 换成 static_castreinterpret_cast、或 C 风格转换 (Dog*)都能编译通过,但全部失去了运行时类型检查的效果——不管 a 实际是 Cat 还是 Dog,它们都"闭眼"返回一个非空指针,于是 isDog 永远返回 true,判定彻底失效。原因很简单:这三个(以及 C 风格)只做编译期的类型重解释,不查运行期真实身份。真正能在运行期"认人"的,只有 dynamic_cast 一个。

转型失败时它不会崩,而是优雅地报告:

Animal* a = new Cat;Dog* d = dynamic_cast<Dog*>(a);// d == nullptr,转型失败// 安全,不会未定义行为

💡 加分点(指针 vs 引用)

  • • 转型指针失败 → 返回 nullptr
  • • 转型引用失败 → 抛异常 std::bad_cast(引用没有"空"的概念)。
Animal a;try {    // 引用转型,失败抛异常    Dog& d = dynamic_cast<Dog&>(a);    (void)d;} catch (std::bad_cast&) {    // 捕获转型失败}

⚠️ 代价(高频考点):dynamic_cast 依赖 RTTI(运行时类型信息),有两层注意:

  1. 1. 有性能开销:它要走虚函数表查类型,比另外三个慢。性能敏感的热路径(如每帧调用)要慎用,能用虚函数解决就别用 dynamic_cast;
  2. 2. 依赖编译开关:RTTI 是个编译器选项(GCC/Clang 是 -frtti/-fno-rtti)。只有打开了 RTTI 才能用 dynamic_cast,关掉了直接编译报错。一些游戏引擎、嵌入式环境会默认关 RTTI 省体积。

七、核心区别对比表

转换方式
何时检查
运行期开销
主要用途
static_cast
编译期
相关类型互转
const_cast
编译期
增删 const
reinterpret_cast
几乎不查
重解释比特
dynamic_cast
运行期
安全向下转型
C 风格 (T)x
编译期
万能,危险

八、面试高频追问

❓ Q1:四种转换运算符里哪个有运行期开销?

✅ 只有 dynamic_cast。它依赖 RTTI 做运行期类型检查,其余三个都是编译期完成。

❓ Q2:dynamic_cast 失败会怎样?

✅ 转指针失败返回 nullptr;转引用失败抛 std::bad_cast。注意区分这两种情况。

❓ Q3:dynamic_cast 的前提是什么?

✅ 操作的类型必须是多态类型——基类至少有一个虚函数(虚析构也算)。否则编译报错。没有虚函数表,运行期就没法做类型判断。

❓ Q4:const_cast 能去掉 const 然后改值吗?

✅ 能去掉 const,但改不改得看对象本源。对象本来就是 const(如 const int x),改它是 UB;对象本来不 const、只是被 const 指针挡住了,改了没事。

❓ Q5:static_cast 和 reinterpret_cast 都能转指针,区别在哪?

✅ static_cast 要求类型"沾边"(如有继承/void 关系),编译期会查;reinterpret_cast 啥指针都能转,直接重解释比特,几乎不查。前者相对安全,后者最危险。


九、总结速查表

转换方式
一句话定位
危险等级
static_cast
相关类型的常规转换
const_cast
只动 const 的手术刀
reinterpret_cast
重解释比特的核武器
dynamic_cast
运行期安全的向下转型
低(有开销)
C 风格转换
万能但难追溯
不推荐

一句话回顾

四种转换运算符,各管一摊static_cast 转相关类型、dynamic_cast 安全下转、const_cast 动 const、reinterpret_cast 重解释比特。命名越丑越安全——因为丑陋的语法逼你想清楚再写。

如果您觉得本篇内容对你有帮助,欢迎点赞 👍、收藏 ⭐、转发 📢。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-10 23:52:18 HTTP/2.0 GET : https://15386.cn/a/471178.html
  2. 运行时间 : 0.215866s [ 吞吐率:4.63req/s ] 内存消耗:4,345.59kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=b70aa739520d614f7229e41ff4f06837
  1. /yingpanguazai/ssd/ssd1/www/no.15386.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/no.15386.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/no.15386.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/no.15386.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/no.15386.cn/runtime/temp/97c957f747c268aee476c4e16775dd7c.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/no.15386.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000921s ] mysql:host=127.0.0.1;port=3306;dbname=no_15386;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001258s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000679s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000669s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001334s ]
  6. SELECT * FROM `set` [ RunTime:0.001661s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001498s ]
  8. SELECT * FROM `article` WHERE `id` = 471178 LIMIT 1 [ RunTime:0.015672s ]
  9. UPDATE `article` SET `lasttime` = 1786377138 WHERE `id` = 471178 [ RunTime:0.009917s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000624s ]
  11. SELECT * FROM `article` WHERE `id` < 471178 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001061s ]
  12. SELECT * FROM `article` WHERE `id` > 471178 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001074s ]
  13. SELECT * FROM `article` WHERE `id` < 471178 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001719s ]
  14. SELECT * FROM `article` WHERE `id` < 471178 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005750s ]
  15. SELECT * FROM `article` WHERE `id` < 471178 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007022s ]
0.219506s