C++:主表达式

C编译器剖析_4.2 语义检查_表达式的语义检查(3)_字符串与标识符 4.2.3             在这一小节,我们先来分析一下基本表达式PrimaryExpression的语义检查,由C的标准文法,我们可以知道与PrimaryExpression相关的产生式如下所示,即加了一对小括号的表达式(Expression)在语法上也相当于标志符ID、常量CONST和字符串StringLiteral。 primary-expression: 阅读详情

C++:主表达式

简介

主表达式是更复杂的表达式的构造块。 它们可能是由范围解析运算符限定的文本、名称和名称 ::。 主表达式可以具有以下任一形式:

primary-expression
 literal
 this
 name
 :: name ( expression )

literal 是常量主表达式。 其类型取决于其规范的形式。 有关指定文本的完整信息,请参阅 文本 。

this 关键字是指向类对象的指针。 它在非静态成员函数中可用。 它指向为其调用函数的类的实例。 this 关键字不能在类成员函数体的外部使用。

指针的类型 this 为 type * const (其中 type 是不专门修改指针的函数中的类名称) this 。 下面的示例演示了成员函数声明和类型 this :

// expre_Primary_Expressions.cpp
// compile with: /LD
class Example
{
public:
    void Func();          //  * const this
    void Func() const;    //  const * const this
    void Func() volatile; //  volatile * const this
};

有关修改指针类型的详细信息 this ,请参阅 this 指针。

范围解析运算符 (:😃 后跟名称是主表达式。 此类名称必须是全局范围内的名称,而不是成员名称。 表达式的类型由名称的声明决定。 它是一个左值 (也就是说,它可以出现在赋值表达式的左侧) 如果声明名称是左值。 范围解析运算符允许引用全局名称,即使该名称隐藏在当前范围中也如此。 有关如何使用范围解析运算符的示例,请参阅 范围 。

括在括号中的表达式是主表达式。 其类型和值与 unparenthesized 表达式的类型和值相同。 如果 unparenthesized 表达式是左值,则它是左值。

主表达式的示例包括:

100 // literal
'c' // literal
this // in a member function, a pointer to the class instance
::func // a global function
::operator + // a global operator function
::A::B // a global qualified name
( i + 1 ) // a parenthesized expression

这些示例都是所有 名称,在各种形式下都是这样的主表达式:

MyClass // an identifier
MyClass::f // a qualified name
operator = // an operator function name
operator char* // a conversion operator function name
~MyClass // a destructor name
A::B   // a qualified name
A<int> // a template id

该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处,本文章博客地址:https://blog.youkuaiyun.com/it_cplusplus/article/details/118884962

C++与Qt桌面订餐系统开发实战:从模型视图到数据库操作 桌面应用程序开发是软件工程中的重要领域,它涉及用户界面设计、业务逻辑处理与数据持久化等核心环节。在C++生态中,Qt框架凭借其信号槽机制和模型/视图架构,为构建跨平台桌面应用提供了高效解决方案。信号槽实现了对象间的松耦合通信,而模型/视图分离了数据与界面,极大提升了代码的可维护性。这些技术对于开发需要处理本地数据存储、复杂交互逻辑的桌面软件具有重要价值,例如各类信息管理系统。本文将以一个完整的桌面订餐系统为例,具体展示如何运用Qt的模型/视图架构和SQLite数据库操作,实现从菜品浏览、购物车管理到订单生成 阅读详情

相关推荐

C++中[Error] expected primary-expression before 'int'

[Error] expected primary-expression before 'int' 脑子短路看三秒没看出来…… 是for写成fot了,但是这个报错的话有点牛头不对马尾啊,很奇怪,记下来吧gg ...

沉迷单车的追风少年 1万+

[随时更新]一些有用的资料

正则表达式:-------------------------------------------------------------正则表达式库 http://www.regexlib.com/ 正则表达式讨论列表 http://aspadvice.com/login.aspx?ReturnUrl=%2fSignUp%2flist.aspx%3fl%3d68%26c%3d16&amp...

weixin_30625691的博客 157

C++:错误:expected primary-expression before ‘<<’ token; ‘)’ token

文章摘要 C++编译错误分析:1)当出现"expected primary-expression before ‘<<’ token"时,通常是因为在<<操作符前使用了类名而非对象实例;2)"expected primary-expression before ‘)’ token"错误表明括号前缺少有效表达式。这两类错误都源于对C++表达式语法的违反,前者需要将类名替换为具体对象,后者需补充括号前的完整表达式。(98字)

mzhan017的博客 8404

C 结构体定义错误:expected primary-expression before '[' token

定义一个结构体之后引用的时候突然发现很多报错 typedef struct{ int cost; int value; } item[N];//误以为这是声明了变量 for(i=0,k=0; i&lt;n; i++,k++) scanf("%d%d",&amp;item[k].cost,&amp;item[k].value);//报错 item[N] is a ty...

u013862444的博客 14万+

深入解析Panfrost驱动:Mali-GPU开源驱动的架构与实现

本文深入解析了Panfrost驱动作为Mali-GPU开源驱动的架构与实现。从诞生背景到硬件架构演进,详细介绍了Panfrost如何突破ARM闭源策略,实现全栈支持。文章还探讨了驱动设计中的关键技术挑战与性能优化策略,为开发者提供了实用的编译部署指南和性能调优方法。

weixin_30790841的博客 552

01-认识脑电信号及相关信号的预处理过程

脑电信号处理过程脑电实验为什么要预处理预处理方法降采样如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 脑电实验 本博客主要是记录基于脑电信号的情绪识别方法的研究...

脑机交流者的博客 7660

C语言基本概念之表达式

什么是表达式(表达式的定义)? 表达式是C语言的重要语法成分,不过对于表达式的定义,好像从来没有人关注过。今天就孔乙己一把吧,哈哈。先贴标准对expression的定义(ISO/IEC 9899:2011 6.5): An expression is a sequence of operators and operands that specifies computation of a val...

astrotycoon 5万+

【笔记6】SP3485自动收发电路设计分析

则TXD路为1,MOS管导通,2/3引脚为0,芯片实际上事与愿违的进入了接收模式。但是,由于我们采用单根双绞线与上位机通信,在数据发出去前数据线上没有任何信号传输,所以AB处于高阻态,进而受到R1下拉与R2上拉的影响,差分信号为1,所以输出1;此外,RXD内路也被上拉,485总线B端上拉,A端下拉。此时TXD由于没有数据传输,所以一直处于1的状态,因而MOS管导通,2/3引脚为0,芯片处于正常接收状态。总而言之就是,RE#与 DE只能有一个是1,1代表微控制器向外发送,0代表微控制器接收。

Haytham233的博客 3146

[Error] expected primary-expression before '&' token是什么意思

[Error] expected primary-expression before '&amp;' token是什么意思源代码#include&lt;iostream&gt;using namespace std;class student{ private: int num,re; public: static int coun; static int sum; student(int...

pCinderellaq的博客 1万+

光纤接口类型与应用场景全解析

本文全面解析了光纤接口的类型与应用场景,详细介绍了SC、LC、FC和ST等主流光纤接口的特点及适用环境。从数据中心的高密度布线到工业环境的极端条件,提供了专业的接口选型指南和实战经验,帮助读者根据具体需求选择最合适的光纤接口方案。

weixin_29289821的博客 411

AUTOSAR FEE 换页机制深度解析:从原理到实现逻辑

​​没有磨损均衡的EEPROM模拟,如同在沙地上建造城堡​​ ——AUTOSAR存储系统设计箴言

汽车电子软件领域知识分享 1341

计算机语言的基础函数表达式,详解C++编程中的主表达式与后缀表达式编写基础...

主表达式主表达式是更复杂的表达式的构造块。它们是文本、名称以及范围解析运算符 (::) 限定的名称。主表达式可以具有以下任一形式:literalthis:: namename( expression )literal 是常量主表达式。其类型取决于其规范的形式。this 关键字是指向类对象的指针。它在非静态成员函数中可用,并指向为其调用函数的类的实例。 this 关键字只能在类成员函数体的外部使用。...

weixin_39740283的博客 741

现代控制理论(4)——李雅普诺夫稳定性理论

文章目录

wang7301的博客 5万+

C++ primer 1.2节test

C++ primer 1.2节test

Leowang的博客 445

一文吃透 BMS:动力电池与储能共用的电池管控全架构详解

BMS作为电池系统的核心控制器,其技术深度和系统复杂性不容小觑。动力电池与储能系统虽然应用场景不同,但在核心架构上共享大量基础技术。成功的BMS设计需要在精度、可靠性、成本、功耗之间找到最佳平衡点。未来,随着电池技术的进步和智能化需求的提升,BMS将向着更高集成度、更强智能化、更优经济性的方向发展。无论是汽车工程师还是储能系统设计师,深入理解BMS的全栈架构,掌握其核心技术原理,都将是应对未来能源存储挑战的关键能力。核心要点回顾BMS采用分层分布式架构,硬件是基础,算法是灵魂。

小帽子的博客 341

vscode配置matlab工作环境

前面有两篇文章我们分别讲了在vscode里面如何配置C语言环境和python环境,那两篇文章总体来说比较复杂,当然这篇也有许多有趣的问题。 附上链接: 文章目录matlab简介基本要求code runner插件与matlab相关的插件添加路径小结code runner是否支持更多语言更多选择另一个选择 matlab简介 MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 MATLAB是ma

Cachel Wood的博客 4541

标准C++表达式综合分析报告

摘要: C++表达式是程序计算的核心单元,具有类型和值类别两大属性,分别决定结果的数据特性与存储方式。表达式由运算符和操作数递归构成,包括主表达式(字面量、标识符等)、后缀表达式(函数调用、下标运算等)、一元表达式(递增、逻辑非等)、二元表达式(算术、关系运算等)以及条件表达式等。运算符优先级和结合性在编译时确定表达式结构,而求值顺序在运行时实现,二者独立。理解这些规则对编写高效、正确的C++代码至关重要,尤其涉及移动语义、资源管理等高级特性时。

greenspan的专栏 798

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【C++学习记录】—— 【12】【表达式】

零.前言 感觉前面那么详细的记录,导致浪费了很多时间,现在可能一篇文章记录一章的重点,所以可能会损失一些简单的信息。 一.基础 1.基础概念 表达式是由一个或多个运算对象组成,对表达式求值,会得到一个结果,字面值和变量是最简单的表达式,用运算符把一个或多个运算式组合起来,就可以生成比较复杂的表达式。 C++里有一元运算符、二元运算符、三元运算符等多种运算符,如其名,比如&、*的作用对象是一个,所以是一元运算符,而==、*这些符号作用对象是两个,所以是二元运算符。函数调用也是一种特殊的运算符。 1.1

康娜喵的原创博客 749

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

c++中const的用法

有时我们希望定义一种变量,它的值不能被改变,就要用到关键字const 1.初始化和const 对象的类型决定了其上的操作。const对象必须进行初始化。 2.const引用 可以把引用绑定到const对象上,就像绑定其它对象一样,我们称之为对常量的引用。与普通引用不同之处是常量引用不能改变它所绑定的对象,故在其前加上关键字const。 const int i = 1024; cons

从这里开始...... 1141

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

终极datatable f-expression指南:表达式驱动的数据转换技巧

datatable是一个专注于二维表格数据操作的Python包,其核心功能之一就是强大的f-expression表达式系统。f-expression为数据处理提供了简洁而强大的语法,让你能够轻松实现复杂的数据转换、筛选和聚合操作,是提升数据处理效率的终极工具。 ## 什么是f-expression? f-expression是datatable中用于引用和操作DataFrame列的特殊语法,通

gitblog_00654的博客 408

C++实战:中药方剂管理平台开发全解析

在软件工程实践中,数据管理平台是连接业务逻辑与信息技术的核心枢纽,其设计原理关乎系统的稳定性、可扩展性与数据处理效率。通过关系型数据库建模、业务逻辑层封装与高性能算法实现,此类平台能够将复杂的领域知识转化为结构化的数字资产,从而创造显著的技术价值。在医疗信息化、传统行业数字化转型等应用场景中,平台需要处理诸如多维度查询、关联分析与规则校验等核心需求。本文聚焦于一个具体案例——基于C++与Qt框架开发的中药方剂综合管理平台,详细阐述了如何利用**MySQL数据库设计**与**智能查询算法**,解决药材标准化、

weixin_30876945的博客 334

10零基础学C++ 三目运算符

认识三目运算符

didididididiw的博客 313

C++ Primer 第五版 练习题参考答案 第一章

答:while 循环的优点是书写简单,缺点是程序员可能忘记在循环体(statement)内作用条件判断语句(condition),造成无限循环;for 循环的优点是规范、整洁,不易漏掉作用条件判断(condition)的表达式(expression),缺点是书写稍繁琐。答:如果输入的值都相等,程序输出相等值的个数;//改正:cout<</*"*/ "*/ ";答:这是非法的,应该把分号去掉,预期的主表达式在“cout<<"/*";// 合法 输出 /*cout<</*"*/ "*/;//合法 输出 */

qq_57247954的博客 1132

C++ string性能优化与MySQL约束实战:构建高性能数据系统

在软件开发中,数据的高效组织与完整性保障是核心挑战。C++的std::string作为基础数据结构,其底层实现如SSO(短字符串优化)机制,通过避免短字符串的堆内存分配,显著提升了内存操作性能。理解其内存布局与陷阱(如临时对象、c_str()生命周期)是编写高性能C++代码的关键。数据库层面,MySQL的表约束(如主键、外键、CHECK约束)是数据完整性的基石,它们将业务规则内嵌至存储引擎,减少应用层校验负担,并常与索引协同提升查询效率。在C++后端与MySQL协同场景中,如高效读取BLOB数据、构建防注入

anjichan4261的博客 497

CrispASR流式实时转写实战:管道、麦克风与WebSocket三种架构完整指南

CrispASR 是一个基于 C++ ggml 的多语言语音识别(ASR)与语音合成运行时,一个二进制即可驱动 Parakeet、Voxtral、Canary 1B v2 等上百种模型。本文带你快速上手 **CrispASR 流式实时转写**:管道模式(`--stream`)、麦克风采集(`--mic`)与 WebSocket 服务端(`--ws-port`)三种架构,覆盖从本地调试到远程服务的全

gitblog_00760的博客 768
上一篇: C++:一元加号和非运算符:+ 和 -
下一篇: C++:省略号和可变参数模板
「已注销」
博客等级 码龄5年 27粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值