C++中 定义,声明的语句之后是否需要加分号“;”

函数的声明、定义和调用 本博简单介绍一下C语言中函数声明、定义和调用的概念 阅读详情

在C语言汇中,分号(semicolon)是终结符号(terminator),用来终结声明(declaration)或单个语句(statement)。(主要是用来帮助编译器解析源代码的)

就问题而言,对前者来讲是声明,需要加分号;对后者来讲是定义,非声明非语句,不需要加分号。

  • 语句、定义不需要分号结尾,声明需要分号结尾;
  • 语句、定义不需要分号结尾,声明需要分号结尾;
  • 语句、定义不需要分号结尾,声明需要分号结尾;

语句:

if、for、while都是statement,所以{ }本身是语句的一部分

定义:

void main( ) { }

声明:

结构体定义是Declaration,自然需要分号结尾

C++-类的定义和声明 C++ 语言可以看成是 C语言的扩展和改进,相对于 C语言,C++语言主要是增添了面向对象的特性。类(Class)则是 C++ 面向对象编程的实现方式。 无论是何种编程语言,进行面向对象程序设计都将是从类的设计开始的。什么是类呢?其实很简单,我们可以理解为一种用户自定义的数据类型,类似于 C语言里面的结构体(struct),在本章最后我们将对比类和结构体之间的异同。 class student { //可以在此处声明类成员变量和成员函数 }; 在例 1 中创建了一个 student 类,可以在该类 阅读详情

相关推荐

分号在各种编程语言中的作用

文章目录分号在C中的作用:分号在C ++中的作用:分号在Java中的作用:分号在JavaScript中的作用:分号在Python中的作用:分号在Perl中的作用:分号在SQL中的作用:分号在Go语言中的作用:分号在C#中的作用:分号在Scala中的作用:分号在PL / I中的作用:分号在Pascal中的作用: 分号在C中的作用: 分号是C语言中的结束语句。 分号告诉我们当前语句已终止,其后的其他...

X W F 5136

在C++中,一共有几种情况句尾不需要分号

用于定义语句块的开始和结束,分号用于结束单独的语句,而不是语句块。其他情况下,大多数C++语句需要以分号结束,包括表达式语句、声明语句等等。如果不确定是否需要分号,可以根据语法规则来判断,以避免编译错误。"

weixin_50531046的博客 2664

三维旋转详细解读(Rodrigues‘ Roatation Formula 罗德里格旋转公式)

三维旋转引言三维旋转1)欧拉角2)轴角式旋转分解1)V||的旋转2)V⊥的旋转3)V的整体旋转 引言 前面我们了解了 复数在二维旋转中的作用与联系 而四元数与三维旋转之间的关系与复数对二维旋转有很多类似的地方,下面我们就先来详细了解一下三维旋转的过程。 三维旋转 首先讨论一下三维旋转,我们了解到常用的三维旋转有两种方式: 1)欧拉角 即按照一定的顺序,分别对X, Y, Z三个轴进行旋转 θ 角。绕各旋转轴的旋转矩阵为: 然后任意的三维旋转可以分解成上述三种旋转方式的组合。(注意:三个旋转的顺序是非常重要的

晓晨的博客 1万+

c++ template 1

template//方法模板 T add(T const&a,const T&b){//两个const限定等价 return a+b; }//注意,这里没有分号,因为这是方法 template//结构体模板 struct S{ T s; };//注意,这里有分号,因为这是结构体 template//类模板 class A{ public: S s;//使用了结构体模板 void se

chenzhen1213的专栏 530

AIGC实战指南:从提示词到工作流,掌握AI内容生成核心技能

人工智能生成内容(AIGC)作为当前AI技术的重要应用领域,其核心原理基于大语言模型(LLM)对海量数据的学习与模式识别。这项技术的价值在于将复杂的创作过程自动化,显著提升内容生产效率与创意实现的多样性。在实际应用中,AIGC已广泛渗透至文本创作、图像设计、音频合成及视频生成等多个场景,成为数字内容生产的重要工具。要高效运用AIGC,关键在于掌握提示词工程与模型微调等核心技能。例如,通过结构化提示词设计,可以精确引导模型生成符合预期的专业周报;而选择合适的微调模型,则能大幅提升图像生成的风格控制力与输出质量

weixin_26808439的博客 373

基于Hadoop生态的大数据异常检测平台搭建

批处理:用Spark MLlib的LOF(局部异常因子,适合高密度数据)、(单类支持向量机,适合高维数据);流处理:用Flink ML的(实时聚类,检测离群点)、ADWIN(自适应滑动窗口,处理概念漂移)。数据层:用Flume/Kafka采集数据,HDFS存储,Hive管理元数据;计算层:用Spark处理离线批数据,Flink处理实时流数据;算法层:用孤立森林(批)、3σ原则(流)检测异常;可视化层:用Grafana做仪表盘,Prometheus+Alertmanager报警。这个平台能处理。

软件工程实践的博客 933

c++类的总结

一、类的定义1.类是对具有相同属性和行为的一组对象与统一描述。是用户自定义的数据类型。2.类的定义包括行为和属性两个部分。3.属性以数据表示,行为通过函数实现。二、c++类定义的格式class 类名{    public:公有数据成员和成员函数;    protected:保护数据成员和成员函数;    private:私有数据成员和成员函数;};<=分号不得省略!!!各成员函数的实现;三、...

gxmmmm的博客 2910

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。

weixin_29057065的博客 421

C中的分号

初学时只需了解函数的定义一行后面不需添加分号 函数的声明需要添加分号 而主函数后面不需要添加分号 头文件的后面不需要添加分号

Sky*殇的博客 2221

硬件工程师入门基础知识(一)基础元器件认识(二)

我们的电路输入一般是只有两种状态,0V 或者是其它的高电平(1.8V,3.3V,5V 等),截止状态一般不用怎么考虑,因为如果让三极管的 Vbe=0,自然就截止了,重要的是饱和状态如何保证。也就是说只要 Rb

小幽余生不加糖 1万+

sec_uid

webcast_uid转sec_uid,webcast_uid转uid,webcast_uid转dy号

m0_56967679的博客 4419

C++语句结束处分号(;)问题

C++语句结束处分号(;)问题 一、前言 C++中大多数语言以分号结束。也存在空语句,即单独一个分号。但是多余的空语句并非总是无害的。特记录何时该加分号何时不该加。 二、何时该加分号 一条语句结束处应加分号 复合语句(块)是指用花括号({ })括起来的语句序列。块后面不需要分号,因为在程序中,语法上需要一条语句,但是逻辑上需要多条语句就会用到块。如:for、if、while后不止一条语句时而使用块,块结束处不需要分号。注:do while的while后仍需要分号,因为它不是以块结束。 类体右侧表示结束的

十七号路的博客 2396

环保 HJ212协议解析

由于是做环保相关的,有时需要对212协议进行拆包和解包。HJ212协议是一种字符串协议,数据传输通讯包主要由包头、数据段长度、数据段、CRC校验、包尾组成,其中“数据段”内容包括请求编码、系统编码、命令编码、密码、设备唯一标识、总包数、包号、指令参数。请求编码为请求的时间戳,系统编码ST统一规定为22,命令编码CN为该数据包的时间类型,访问密码、设备唯一标识在对接时由平台提供,指令参数为数据内容。通讯协议的数据结构如图4所示。 图4 通讯协议的数据结构 6.1.1通讯包结构组成 名称 类型 长度

ccf19881030的专栏 2万+

C++ 函数的声明和定义

在程序中使用函数时,你必须先声明它然后再定义,声明的目的是告诉编译器你即将要定义的函数的名字是什么,返回值的类型是什么以及函数是什么。而定义则是告诉编译器这个函数的功能是什么。假如我们不声明,那么该函数就不能被其他函数调用。通常我们把函数声明叫做函数原型,而把函数定义叫做函数实现。 函数的声明: 如:int Add(int, int); 1,在C++中,函数原型就是函...

风轻淡淡的博客 3万+

热力学仿真软件:ANSYS CFX_(15).旋转机械仿真

创建旋转域在中选择需要设置为旋转域的区域。选择选项。设置旋转速度在设置中,指定旋转速度(单位为弧度/秒)。也可以选择选项,并输入具体值。设置旋转轴在设置中,指定旋转轴的方向和位置。通常旋转轴的方向可以使用单位向量来表示,例如[0, 0, 1]表示沿Z轴旋转。旋转轴的位置可以通过指定一个点的坐标来确定,例如[0, 0, 0]表示旋转轴通过原点。旋转机械的仿真在ANSYS CFX中是一个复杂但重要的过程。

kkchenjj的博客 1157

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C++ 分号 (;) 终极生存指南:从入门到多文件架构

本文全面解析C++中分号的使用规则,涵盖单文件基础和多文件架构场景。关键点包括:必须加分号的场景(变量定义、函数调用、类定义结尾);禁止加分号的情况(预处理指令、函数/控制流头部);多态与继承中的特殊规则;以及多文件项目中extern声明与定义的区别。文章提供速查表和判断心法:完整指令或类型定义结束需加分号,紧跟大括号或预处理指令则不加。特别强调多文件规则:所有声明和extern预告必须加分号,而定义实现则视情况而定。掌握这些规则可避免常见分号错误。

qq_72758246的博客 358

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C语言中右大括号(})后是否加分(;)号问题

在C语言中定义结构体时,右大括号后是需要加分号的,在C++中使用class关键字定义类时,右大括号后也是需要加分号的,而在定义函数时,右大括号后是不需要加分号的。 对这个问题的解释就是右花括号}能代表结尾的就不需要加分号。 例如:while循环、for循环、if语句中,右大括号}就能代表这个循环或者语句结束了,所以不需要分号来辅助。 而在 do { }while()...

diaozhiwa5526的博客 6021

深度学习工具包 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")

C++语句(声明语句、执行语句、空语句、复合语句)

由第1章已知,一个程序包含一个或多个程序单位(每个程序单位构成一个程序文件)。每一个程序单位由以下几个部分组成:   预处理命令。如#include命令和#define命令。   声明部分。例如对数据类型和函数的声明,以及对变量的定义。   函数。包括函数首部和函数体,在函数体中可以包含若干声明语句和执行语句。   如下面是一个完整的C++程序:   复制纯文本新窗口   #inclu

2199

漫谈:C语言 C++ 迷惑的语句、分号、大括号

漫谈:C语言 C++ 迷惑的语句、分号、大括号

编程之道在明明德在亲民在止于至善 1353

C++ Primer 简单语句

专栏简介:本专栏主要面向C++初学者,解释C++的一些基本概念和基础语言特性,涉及C++标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级程序设计技术。希望对读者有帮助!

专注于C/C++编程语言的博客,如果读者对C/C++语言有任何需要咨询的可以私信联系! 1442

#define语句后面加分号(转载)

博文一 转载自:https://www.sohu.com/a/366877346_298038 为什么一般来说#define后面没有分号? 所谓#define语句后面一般没有分号的原因在于,将要替换的字符串还原之后,导致还原位置的语句出现问题,因此才使得后面不能有分号。 也就是说,如果替换之后,语法正常,其实是可以的(注意空格问题)。 //来源:公众号【编程珠玑】 #include<stdio.h> #defineNUM 1024; intmain(void) { in...

lxj362343的博客 6804

C++分号

分号可以构成空语句语句、定义不需要分号结尾声明需要分号结尾。

ljh5930的博客 994

c++中定义和声明的区别

一.基本理解1.定义和声明的简单说明a.声明就是指给除了当前变量或者函数,或者类什么的名字,不给其中的内容,就是先告诉你有这样一个什么类型的变量或者函数,但是这个变量或者函数的具体信息却是不知道的。就好比跟你介绍一个人的时候,声明就是只告诉你这个人叫什么,但是缺不给你说这个人到底怎么样,他有哪些优点,缺点,喜好问题是什么的。b.定义就不一样了,定义直接告诉你了所有的东西,这个变量是什么,这个函数是...

柯南的博客 1万+

C语言中什么时候需要在花括号后面加分号?

时,右大括号后是需要加分号的,在C++中使用class关键字定义类时,右大括号后也是需要加分号的,而在定义函数时,右大括号后是不需要加分号的。在结构体的定义完成之后,可以立马定义一个变量,所以遇到右大括号不一定就是结尾,因此,此时只能用分号来告诉编译器该结尾了。例如:while循环、for循环、if语句中,右大括号}就能代表这个循环或者语句结束了,所以不需要分号来辅助。中,执行语句后,再判断是否执行下一次循环,这里的右大括号}不能代表结尾,需要分号辅助。语句、定义不需要分号结尾,声明需要分号结尾。

myPhilia的博客 1146

C++学习2_C++函数的声明和定义

C++中函数的声明和定义 在程序中使用函数时,你必须先声明它然后再定义。 **函数的声明:**告诉编译器你即将要定义的函数的名字是什么,返回值的类型是什么以及函数是什么。假如不声明,那么该函数就不能被其他函数调用。 **函数的定义:**告诉编译器这个函数的功能是什么。 C++中函数的声明可以有多次,但是函数的定义只能有一次。 通常把函数声明叫做函数原型,把函数定义叫做函数实现。 1. 函数的声明 函数声明(函数原型)的语句结构: 返回值类型 函数名(参数表); 函数的声明和变量的声明一样,是一句语

LJFjy_fighting的博客 8180

python语句分号_你知道分号在各种编程语言中的作用吗?

分号是标点符号(;),表示通常在两个主要子句之间的暂停,比逗号表示的暂停更明显。在编程中,分号符号起着至关重要的作用。它也用于显示各种编程语言(例如C,C ++,Java,JavaScript和Python)的指令终止。在本文中,让我们看看分号在不同编程语言中的作用:分号在C中的作用:1.分号是C语言中的结束语句。2.分号告诉您当前语句已终止,其后的其他语句是新语句。3.在C语言中使用分号将消除查...

weixin_39829501的博客 1489
上一篇: PIPIOJ 1001 水仙花数
下一篇: PIPIOJ 1003 最少钱币数
DireR9ven
博客等级 码龄5年 792粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值