C++经典面试题50道!!!(秋招必备)

C++常见面试题总结 阅读详情
AI摘要

本文整理了50道C++秋招经典面试题,涵盖变量声明与定义、sizeof和strlen区别、面向对象特征等内容。详细解答了各题,如变量声明不分配地址,定义则分配;还介绍了malloc和new、strcpy和memcpy等的区别,为C++求职者提供参考。

往期回顾:

【QT入门】 Qt槽函数五种常用写法介绍-优快云博客

【QT入门】 QListWidget各种常见用法详解之列表模式-优快云博客

【QT入门】Qt自定义控件与样式设计之QPushButton常用qss_qpushbutton qss-优快云博客


50道资源完整版:

https://download.youkuaiyun.com/download/LF__plus/90200079 

C++秋招经典面试题50道!!!

面试题1:变量的声明和定义有什么区别 ?

   为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明, 但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分 定义。

  说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间, 如外部变量。

面试题2:写出bool 、int、 float、指针变量与“零值”比较的if语句

bool型数据:

if( flag ) 
{ 
 A; 
} 
else 
{ 
 B; 
} 

int型数据:

if( 0 != flag ) 
{ 
 A; 
} 
else 
{ 
 B; 
} 

 指针型数:

if( NULL == flag ) 
{ 
 A; 
} 
else 
{ 
 B; 
} 

float型数据:

if ( ( flag >= NORM ) && ( flag <= NORM ) ) 
{ 
 A; 
}

 注意:

应特别注意在int、指针型变量和“零值”比较的时候,把“零值”放在左边,这样当把“==” 误写成“=”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。

面试题3:sizeof和strlen的区别 

sizeof 和 strlen 有以下区别:

 sizeof是一个操作符,strlen是库函数。

 sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数。

 编译器在编译时就计算出了sizeof 的结果。而 strlen 函数必须在运行时才能计算出来。并且 sizeof 计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。

 数组做sizeof的参数不退化,传递给strlen就退化为指针了。

注意:有些是操作符看起来像是函数,而有些函数名看起来又像操作符,这类容易混淆的名称一定 要加以区分,否则遇到数组名这类特殊数据类型作参数时就很容易出错。最容易混淆为函数的操作符就 是sizeof。

面试题4:C语言的关键字 static 和 C++ 的关键字 static 有什么区别 

在C中static 用来修饰局部静态变量和外部静态变量、函数。而C++中除了上述功能外,还用来定 义类的成员变量和函数。即静态成员和静态成员函数。

注意:编程时static的记忆性,和全局性的特点可以让在不同时期调用的函数进行通信,传递信息, 而C++的静态成员则可以在多个对象实例间进行通信,传递信息。 

面试题5:C中的malloc和C++中的new有什么区别

malloc 和 new有以下不同:

(1)new、delete 是操作符,可以重载,只能在C++中使用。

(2)malloc、free 是函数,可以覆盖,C、C++中都可以使用。

(3)new 可以调用对象的构造函数,对应的delete调用相应的析构函数。

(4)malloc 仅仅分配内存,free仅仅回收内存,并不执行构造和析构函数

(5)new、delete 返回的是某种数据类型指针,malloc、free返回的是void指针。

注意:malloc申请的内存空间要用free释放,而new申请的内存空间要用delete释放,不要混用。 因为两者实现的机理不同。

面试题6:写一个“标准”宏MIN 

#define min(a,b)((a)<=(b)?(a):(b))

注意:在调用时一定要注意这个宏定义的副作用,

如下调用: ((++*p)<=(x)?(++*p):(x)。 p 指针就自加了两次,违背了MIN的本意。

面试题7:一个指针可以是volatile吗

可以,因为指针和普通变量一样,有时也有变化程序的不可控性。常见例:子中断服务子程序修改 一个指向一个buffer的指针时,必须用volatile来修饰这个指针。

说明:指针是一种普通的变量,从访问上没有什么不同于其他变量的特性。其保存的数值是个整型 数据,和整型变量不同的是,这个整型数据指向的是一段内存地址。

面试题8:a和&a有什么区别

请写出以下代码的打印结果,主要目的是考察a和&a的区别。

#include<stdio.h> 
void main( void ) 
{ 
int a[5]={1,2,3,4,5}; 
int *ptr=(int *)(&a+1); 
printf("%d,%d",*(a+1),*(ptr-1)); 
return; 
} 

输出结果:2,5。

注意:数组名a可以作数组的首地址,而&a是数组的指针。思考,将原式的int *ptr=(int *)(&a+1); 改为int *ptr=(int *)(a+1);时输出结果将是什么呢?

面试题9:简述C、C++程序编译的内存分配情况

C、C++中内存分配方式可以分为三种:

(1)从静态存储区域分配: 内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错, 因为有系统会善后。例如全局变量,static变量等。

(2)在栈上分配: 在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释 放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3)从堆上分配: 即动态内存分配。程序在运行的时候用malloc 或new申请任意大小的内存,程序员自己负责在何 时用free 或delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活。如果在堆上分配了空间, 就有责任回收它,否则运行的程序会出现内存泄漏,另外频繁地分配和释放不同大小的堆空间将会产生 堆内碎块。

一个C、C++程序编译时内存分为5大存储区:堆区、栈区、全局区、文字常量区、程序代码区。

 面试题10:简述strcpy、sprintf 与 memcpy的区别 三者主要有以下不同之处:

(1)操作对象不同,strcpy的两个操作对象均为字符串,sprintf的操作源对象可以是多种数据类型, 目的操作对象是字符串,memcpy 的两个对象就是两个任意可操作的内存地址,并不限于何种数据类型。

(2)执行效率不同,memcpy最高,strcpy次之,sprintf的效率最低。

3)实现功能不同,strcpy主要实现字符串变量间的拷贝,sprintf主要实现其他数据类型格式到字 符串的转化,memcpy主要是内存块间的拷贝。

说明:strcpy、sprintf 与 memcpy都可以实现拷贝的功能,但是针对的对象不同,根据实际需求,来 选择合适的函数实现拷贝功能。

面试题11:设置地址为0x67a9的整型变量的值为0xaa66

int *ptr;

ptr = (int *)0x67a9;

*ptr = 0xaa66;

说明:这道题就是强制类型转换的典型例子,无论在什么平台地址长度和整型数据的长度是一样的, 即一个整型数据可以强制转换成地址指针类型,只要有意义即可。

面试题12:面向对象的三大特征

面向对象的三大特征是封装性、继承性和多态性:

封装性:将客观事物抽象成类,每个类对自身的数据和方法实行 protection(private, protected, public)。

继承性:广义的继承有三种实现形式:实现继承(使用基类的属性和方法而无需额外编码的能力)、可 视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。

多态性:是将父类对象设置成为和一个或更多它的子对象相等的技术。用子类对象给父类对象赋值 之后,父类对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。

说明:面向对象的三个特征是实现面向对象技术的关键,每一个特征的相关技术都非常的复杂,程 序员应该多看、多练。

面试题13:C++的空类有哪些成员函数

缺省构造函数。

缺省拷贝构造函数。

缺省析构函数。

缺省赋值运算符。

缺省取址运算符。

缺省取址运算符 const。

注意:有些书上只是简单的介绍了前四个函数。没有提及后面这两个函数。但后面这两个函数也是 空类的默认函数。另外需要注意的是,只有当实际使用这些函数的时候,编译器才会去定义它们。

面试题14:谈谈你对拷贝构造函数和赋值运算符的认识

拷贝构造函数和赋值运算符重载有以下两个不同之处:

(1)拷贝构造函数生成新的类对象,而赋值运算符不能。

(2)由于拷贝构造函数是直接构造一个新的类对象,所以在初始化这个对象之前不用检验源对象 是否和新建对象相同。而赋值运算符则需要这个操作,另外赋值运算中如果原来的对象中有内存分配要 先把内存释放掉

注意:当有类中有指针类型的成员变量时,一定要重写拷贝构造函数和赋值运算符,不要使用默认 的。

面试题15:用C++设计一个不能被继承的类

template <typename T> class A 
{ 
 friend T; 
private: 
 A() {} 
 ~A() {} 
}; 
 
class B : virtual public A<B> 
{ 
public: 
 B() {} 
 ~B() {} 
}; 
class C : virtual public B 
{ 
public: 
 C() {} 
 ~C() {} 
}; 
void main( void ) 
{ 
 B b; 
 //C c; 
 return; 
} 

注意:构造函数是继承实现的关键,每次子类对象构造时,首先调用的是父类的构造函数,然后才
是自己的。

面试题16:访问基类的私有虚函数 

写出以下程序的输出结果:

#include <iostream.h> 
class A 
 
 6 
{ 
 virtual void g() 
 { 
  cout << "A::g" << endl; 
 } 
private: 
 virtual void f() 
 { 
  cout << "A::f" << endl; 
 } 
}; 
class B : public A 
{ 
 void g() 
 { 
  cout << "B::g" << endl; 
 } 
 virtual void h() 
 { 
  cout << "B::h" << endl; 
 } 
}; 
typedef void( *Fun )( void ); 
void main() 
{ 
 B b; 
 Fun pFun; 
 for(int i = 0 ; i < 3; i++) 
 { 
  pFun = ( Fun )*( ( int* ) * ( int* )( &b ) + i ); 
  pFun(); 
 }  
}

输出结果:

B::g

A::f

B::h

注意:本题主要考察了面试者对虚函数的理解程度。一个对虚函数不了解的人很难正确的做出本题。 在学习面向对象的多态性时一定要深刻理解虚函数表的工作原理。 

面试题17:简述类成员函数的重写、重载和隐藏的区别

(1)重写和重载主要有以下几点不同。

 范围的区别:被重写的和重写的函数在两个类中,而重载和被重载的函数在同一个类中。

 参数的区别:被重写函数和重写函数的参数列表一定相同,而被重载函数和重载函数的参数列表一 定不同。

 virtual的区别:重写的基类中被重写的函数必须要有virtual修饰,而重载函数和被重载函数可以被 virtual 修饰,也可以没有。

(2)隐藏和重写、重载有以下几点不同。

 与重载的范围不同:和重写一样,隐藏函数和被隐藏函数不在同一个类中。

 参数的区别:隐藏函数和被隐藏的函数的参数列表可以相同,也可不同,但是函数名肯定要相同。 当参数不相同时,无论基类中的参数是否被virtual修饰,基类的函数都是被隐藏,而不是被重写。

说明:虽然重载和覆盖都是实现多态的基础,但是两者实现的技术完全不相同,达到的目的也是完 全不同的,覆盖是动态态绑定的多态,而重载是静态绑定的多态。

面试题18:简述多态实现的原理

编译器发现一个类中有虚函数,便会立即为此类生成虚函数表 vtable。虚函数表的各表项为指向对 应虚函数的指针。编译器还会在此类中隐含插入一个指针vptr(对vc编译器来说,它插在类的第一个位 置上)指向虚函数表。调用此类的构造函数时,在类的构造函数中,编译器会隐含执行vptr与vtable的 关联代码,将vptr指向对应的vtable,将类与此类的vtable联系了起来。另外在调用类的构造函数时, 指向基础类的指针此时已经变成指向具体的类的this指针,这样依靠此this指针即可得到正确的vtable,。 如此才能真正与函数体进行连接,这就是动态联编,实现多态的基本原理。 注意:一定要区分虚函数,纯虚函数、虚拟继承的关系和区别。牢记虚函数实现原理,因为多态 C++面试的重要考点之一,而虚函数是实现多态的基础。

面试题19:链表和数组有什么区别 数组和链表有以下几点不同:

(1)存储形式:数组是一块连续的空间,声明时就要确定长度。链表是一块可不连续的动态空间, 长度可变,每个结点要保存相邻结点指针。

(2)数据查找:数组的线性查找速度快,查找操作直接使用偏移地址。链表需要按顺序检索结点, 效率低。

(3)数据插入或删除:链表可以快速插入和删除结点,而数组则可能需要大量数据移动。

(4)越界问题:链表不存在越界问题,数组有越界问题。 说明:在选择数组或链表数据结构时,一定要根据实际需要进行选择。数组便于查询,链表便于插 入删除。数组节省空间但是长度固定,链表虽然变长但是占了更多的存储空间。

面试题20:怎样把一个单链表反序

(1)反转一个链表。循环算法。

List reverse(List   
n)  
{  
if(!n)       
//判断链表是否为空,为空即退出。 
{ 
return n; 
} 
list cur = n.next;    
//保存头结点的下个结点  
list pre = n;     
//保存头结点 
list tmp; 
7 
 
 8 
 pre.next = null;     //头结点的指针指空,转换后变尾结点 
 while ( NULL != cur.next )   //循环直到cur.next为空 
 { 
  tmp = cur;     //实现如图10.3—图10.5所示 
  tmp.next = pre   
  pre = tmp; 
 
  cur = cur.next; 
 } 
 return tmp;     //f返回头指针 
} 

(2)反转一个链表。递归算法。

List *reverse( List *oldList, List *newHead = NULL )  
{ 
 List *next = oldList-> next;   //记录上次翻转后的链表 
 oldList-> next = newHead;   //将当前结点插入到翻转后链表的开头 
 newHead = oldList;     //递归处理剩余的链表 
 
 return ( next==NULL )? newHead: reverse( t, newHead );  
} 

说明:循环算法就是图10.2—图10.5的移动过程,比较好理解和想到。递归算法的设计虽有一点难 度,但是理解了循环算法,再设计递归算法就简单多了。 


剩下三十道放在资源里了,需要的朋友可自行下载使用! 

50道必备的Python面试题(收藏) 作者:小F 本文转自:法纳斯特 在过去的2020年,Python赢得了年度TIOBE编程语言奖,成为 过去一年最受欢迎的编程语言。在数据科学和机器学习等领域中,被广泛使用。 正值“金三银四”招聘季,小F给大家整理了50道Python面试题,还有相对应的答案,来帮助大家更好的了解和学习Python。 ▍1、什么是Python?为什么它会如此流行? Python是一种解释的、高级的、通用的编程语言。 Python的设计理念是通过使用必要的空格与空行,增强代码的可读性。 它之所以受欢... 阅读详情

相关推荐

2022年50道必备python面试题大全(附答案)【建议收藏】

Python是一种解释的、高级的、通用的编程语言。Python的设计理念是通过使用必要的空格与空行,增强代码的可读性。它之所以受欢迎,就是因为它具有简单易用的语法。switch语句是实现多分支选择功能,根据列表值测试变量。switch语句中的每个值都被称为一个case。在Python中,没有内置switch函数,但是我们可以创建一个自定义的switch语句。Lambda函数是不带名称的单行函数,可以具有n个参数,但只能有一个表达式。也称为匿名函数。

Modeler_xiaoyu的博客 4206

50个C/C++面试题

面试题1:变量的声明和定义有什么区别  为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。  说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。  面试题2:写出bool 、int、 float、

沙漠中的一粒沙 1万+

嵌入式面经111道面试题全解析C/C++可参考

该专栏是我校招阶段整理的关于“嵌入式面经”的111道题目,“软件开发岗位”也可以参考下。涵盖了大多数嵌入式/软件开发岗位常见基础面试题,题目来源是牛客网各大大厂的面经,答案是我逐个查阅资料,理解整理出的答案争取让读者尽可能的容易阅读和理解。......

a763450633的博客 5777

【附答案】C/C++ 最常见50道面试题

在编程中,变量的声明指的是告知编译器变量的名称和类型,但不分配内存空间。声明可以多次,常见于头文件中,用于模块间的接口声明。使用extern关键字声明的变量,意味着其定义在别处,通常在另一个文件中。相对地,定义则是创建一个具有存储空间的变量实例。定义只能有一次,通常在源文件中,确保为变量分配内存空间。例如,全局变量和局部变量的定义就是分配内存并初始化的过程。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1万+

50道必备的Python面试题

正值“金三银四”招聘季,我给大家整理了50道Python面试题,还有相对应的答案,来帮助大家更好的了解和学习Python。

IT199508的博客 240

金三银四,50道必备的Python面试题

然后将字节码发送到Python虚拟机(PVM),这里Python代码将被执行,如果发现任何错误,则暂停执行,否则结果将显示在输出窗口中。这两种通用的表达方式,除了可以简化程序员的开发,避免出错之外,还有一种好处,就是可以减少转义字符的使用,使程序看起来更简洁,更清晰。正值“金三银四”招聘季,今天给大家整理了50道Python面试题,还有相对应的答案,来帮助大家更好的了解和学习Python。{}用于表示一个集合。在Python中使用单引号(' ')或双引号(" ")是没有区别的,都可以用来表示一个字符串。

m0_73720982的博客 376

11道C++常见面试题以及答案(2022)

11道C++常见面试题以及参考答案,答案不唯一,仅限参考。

m0_57037805的博客 1万+

C++经典面试题100例及答案

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。答:常对象是指在任何场合都不能对其成员的值进行修改的对象。答:所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

usstmiracle的博客 3万+

金三银四,50道必备的Python面试题(建议收藏)

大家好,我是小F~在过去的2020年,Python赢得了年度TIOBE编程语言奖,成为过去一年最受欢迎的编程语言。在数据科学和机器学习等领域中,被广泛使用。正值“金三银四”招聘季,小F给大...

法纳斯特 2639

C++面试题集锦(非常详细)

面试题集锦,网上摘抄到一些,自己整理一部分,形成文档。看完面试基本能通过一半。

LaTeX新手入门以及TeXlive和TeXstudio的安装使用

作为一个新手,LaTeX的了解和使用很是费了一番功夫,因此,在这里给找不到路的同志们稍微介绍一下。如有错误,敬请指正。本篇内容基于Win10系统,因此安装在Mac或者Linux上的同学可以再找找其他的介绍文章。 目录 LaTeX介绍 LaTeX环境配置 一、TeXlive下载 二、TeXlive安装 1. 安装main installer 2. 正式安装 三、TeXstudio安装...

zywhehe的博客 21万+

50道求职必备Python面试题+答案

正值“金三银四”招聘季,小编给大家整理了50道Python面试题,还有相对应的答案,来帮助大家更好的了解和学习Python。(文末附Python资料)

weixin_55154866的博客 3215

[渗透测试实战篇-4] RCE漏洞组合拳突破Getshell全解析

本文深入解析RCE漏洞组合拳在渗透测试中的实战应用,通过SSRF、XXE等漏洞串联技术突破Getshell的全过程。文章详细介绍了Java和PHP环境下的漏洞利用差异,以及防御绕过与权限维持的实用技巧,为安全研究人员提供全面的实战指导。

weixin_29211309的博客 351

校招&社招面试必备 | C++面试题五十问,2023年最新!

作者|Zebulon 编辑|汽车人原文链接:https://zhuanlan.zhihu.com/p/629336564点击下方卡片,关注“自动驾驶之心”公众号ADAS巨卷干货,即可获取点击进入→自动驾驶之心【求职交流】技术交流群自动驾驶之心团队筹划了近半年,终于推出了首个面向求职的自动驾驶社区。如果你想找实习/内推,社招换工作 and 获取心仪公司的第一手信息,想要了解校招需要如何准备...

CV_Autobot的博客 1533

【UE5】映射方式:动作映射(Action Mappings) 与 轴映射(Axis Mappings)

链接:https://pan.baidu.com/s/1nQHvZXC4BDsfbFWDYZqEfA?按下键盘A键,不要抬起,屏幕左上角打印了一次。(和Unity中的轴映射机制类似)下面我们通过测试更直观的了解一下这。抬起键盘A键,屏幕左上角打印了一次。项目资源文末百度网盘自取。再添加一个按键,选择键盘。键,缩放值设置为 2.0。,框选所有测试节点,按下。的情况下,屏幕一直打印。

weixin_64072619的博客 3506

基于线性光耦HCNR200的高压直流采样电路设计与精度优化

本文详细介绍了基于线性光耦HCNR200的高压直流采样电路设计与精度优化方法。针对直流高电压测量中的安全与干扰问题,提出采用HCNR200光耦隔离方案,实现高精度线性传输。文章深入解析电路设计关键细节,包括电阻网络、运放选型、滤波电容配置等,并提供精度优化实战技巧与常见问题排查指南,助力新能源电动汽车和高压储能系统的高压直流采样应用。

weixin_42713608的博客 580

C/C++求职者必备的20道面试题

面试题有难有易,不能因为容易,我们就轻视,更不能因为难,我们就放弃。我们面对高薪就业的态度永远不变,那就是坚持、坚持、再坚持。出现问题,找原因;遇到困难,想办法。我们一直坚信只有在坚持中才能看到希望,而不是看到希望才去坚持。 人生没有如果,只有结果和后果。既然选择了,就不后悔。年轻就是资本,年轻就要吃苦,就要历练。就要学会在坚持中成长。如此感慨,至深的心得体会,绝对的经验之谈。 OK,

u010607947的博客 2万+

CoppeliaSim+matlab+simulink七轴机械臂仿真

七轴机械臂vrep+matlab+simulink 仿真

a1233219的博客 3552

C++ 面试题常用总结 详解(满足c++ 岗位必备,不定时更新)

本文主要总结了一些常见的C++面试题,主要涉及到语法基础、STL标准库、内存相关、类相关和其他辅助技能,掌握这些内容,基本上就满足C++的岗位技能,欢迎大家前来学习指正,会不定期去更新面试内容。

cl122763974的博客 5万+

(五)深入理解蓝牙BLE之“Beacon包格式详解”

蓝牙Beacon格式详解 本文重点在结合Bluetooth官网spec和几个例子来使beacon帧格式更加容易被理解。 广播帧格式: 首先beacon是蓝牙BLE广播包的一种,蓝牙广播帧格式如下: PS:其实BLE数据帧除了报头字段和数据字段定义与广播帧不同之外,前导/接入地址/长度/校验格式均相同。 广播帧数据字段格式: 数据字段最长为37个字节:6个字节的广播设备地址 + 31个字节广播数据。 广播数据的格式如下:AD Structure1 +AD Structure2 + .....

1万+

K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

🔴 K8s(二十一):在 Kubernetes 集群中部署 MySQL8.0 高可用集群(1主2从)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3万+

50道求职必备Python面试题+答案_python实习面试

👉。

2401_84616533的博客 826

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: C++ 入门第 21 天:STL 容器之无序映射与无序多重映射
下一篇: C++ 学习第22天:智能指针与异常处理
从一的
博客等级 码龄5年 1995粉丝 213原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值