const的用法(定义和用途)

C++ const的用法详解 C++作为一种面向对象的经典语言,它是非常的强大,它的每个部分都值得我们去深入了解。 const的基本概念:      const名叫常量限定符,用来限定特定变量,以通知编译器该变量是不可修改的。习惯性的使用const,可以避免在函数中对某些不应修改的变量造成可能的改动。 下面我就const的用法来谈谈: const的用法大致可分为以下几个方面: (1)const修饰 阅读详情

在C++中,const关键字的使用在C语言的基础上得到了进一步扩展和丰富,不仅可以用于定义常量,还可以在类中用于定义常量成员变量、常量成员函数以及常量对象。

常量变量(Constant Variables)

  • 定义:常量变量是指一旦初始化后就不能再被修改的变量。

  • 用法:

    const int constantValue = 100;

    示例:

    const int constantValue = 100;
    constantValue = 200; // 错误,常量变量不能被修改

常量指针(Pointer to Constant)

  • 定义:指向常量的指针,意味着不能通过该指针修改它所指向的值,但可以改变指针本身指向的地址。

  • 用法:

    const int *ptr;
    int const *ptr;

    示例:

    int a = 10;
    const int *ptr = &a;
    *ptr = 20; // 错误,不能通过 ptr 修改它指向的值
    ptr = &b;  // 合法,ptr 可以指向其他地址

指针常量(Constant Pointer)

  • 定义:指针本身是常量,意味着指针一旦初始化后不能再指向其他地址,但可以通过该指针修改其指向对象的值。

  • 用法:

    int *const ptr;

    示例:

    int a = 10;
    int *const ptr = &a;
    ptr = &b;  // 错误,ptr 是常量指针,不能改变它指向的地址
    *ptr = 20; // 合法,可以通过 ptr 修改 a 的值

常量成员变量(Const Member Variables)

  • 定义:常量成员变量在对象创建时必须初始化,并且在对象的生命周期内不能修改。初始化通常在构造函数的初始化列表中进行。

  • 用法:

    class Demo {
    public:
        Demo(int v = 0) : val(v), cval(v) {}
    ​
        void setval(int v) {
            val = v;
        }
    ​
        int getval() const {
            return val;
        }
    ​
    private:
        int val;
        const int cval;
    };

常量成员函数(Const Member Functions)

  • 定义:常量成员函数表示这个函数不能修改对象的任何成员变量,并且只能调用其他const成员函数。

  • 用法:

    class Demo {
    public:
        Demo(int v = 0) : val(v), cval(v) {}
    ​
        void setval(int v) {
            val = v;
        }
    ​
        int getval() const {
            return val;
        }
    ​
        void print() const {
            // cval = 10; // 错误,不能修改成员变量
            // setval(888); // 错误,const成员函数不能调用非const方法
            
            std::cout << getval() << std::endl;  // const成员函数能调用const函数
            std::cout << "val: " << val << ", cval: " << cval << std::endl;
        }
    ​
    private:
        int val;
        const int cval;
    };

常量对象(Const Objects)

  • 定义:常量对象只能调用const成员函数,不能调用非const成员函数。

  • 用法:

    int main() {
        const Demo obj(10);
        // obj.setval(20); // 错误,不能调用非const成员函数
        std::cout << obj.getval() << std::endl; // 可以调用const成员函数
        obj.print();
        return 0;
    }

总结

  • 常量指针(Pointer to Constant):指针指向的值是常量,不能通过该指针修改值,但可以改变指针的指向。

  • 指针常量(Constant Pointer):指针本身是常量,不能改变指针的指向,但可以通过指针修改所指向的值。

  • 常量成员变量(Const Member Variables):在对象创建时初始化,之后不能修改。

  • 常量成员函数(Const Member Functions):不能修改对象的成员变量,只能调用其他const成员函数。

  • 常量对象(Const Objects):只能调用const成员函数,不能调用非const成员函数。

C语言中const定义常量 本文章是关于C语言中const定义常量 。 立即下载

相关推荐

SIwave仿真手册——软件基础(一)

最近在学习SIWAVE,在这里将自己的笔记整理一下,做一个专题。希望对大家有帮助,这个会持续更新的。仅限于软件操作学习,不涉及信号完整性的讨论。

luohuo9844的博客 4万+

const 定义常量

06 const 定义常量 1 基本 常量在定义的时候必须赋值 声明之后,在整个程序运行期间它们的值都不能再发生变化 const pi = 3.1415 const e = 2.7182 ​ = 2 批量定义赋值 const ( pi = 3.1415 e = 2.7182 ) // // 同时声明多个常量时,如果省略了值,则表示和上面一行的值相同 const ( n1 = 100 n2 n3 ) // 表示常量n1、n2、n3的值都是100 ​ = 3 常量

当世事再没完美,可远在岁月如歌中找你 2696

英飞凌TC377的Flash管理、UCB配置与HSM安全机制解析

本文深入解析了英飞凌TC377微控制器的Flash存储结构、UCB配置机制与HSM安全模块。详细阐述了带Cache与不带Cache的PFlash地址访问差异、利用SOTA与AB Swap实现无感OTA更新的原理,以及如何通过UCB安全配置启动流程与写保护。重点剖析了HSM硬件安全模块在密钥管理、安全启动与安全OTA中的核心作用,为开发高可靠性嵌入式系统提供实战指南。

weixin_29170327的博客 523

const定义常变量

C++提供了const关键字来定义一个“常量”,例如,我们定义一个变量,变量中的数据不可以被修改,那么,可以使用const关键字声明变量,定义变量是“常量”类型。例如: const float PI = 3.14159; 定义了常变量PI,它具有变量的属性,有数据类型,占用存储单元,有地址,可以使用指针指向它,只是,在程序运行期间,这个常变量的值是固定的,不能改变。 所以,在C++编程中,都使用const来取代了用 #define 定义符号常量的作用。一般把程序中不允许改变值的变量定义为...

LC的专栏 4861

55、Mac OS X 10.2 安装、设置、卸载及故障排除全攻略

本博客全面解析了 Mac OS X 10.2 的安装、设置、卸载及故障排除方法。内容涵盖四种安装方式的适用场景及操作步骤、设置助手的详细配置流程、卸载注意事项与恢复建议,以及常见问题和进阶故障的解决办法。通过图文并茂的形式,帮助用户快速掌握 Mac OS X 10.2 的基础与高级操作,是使用该操作系统的实用指南。

qsc90123456的博客 151

【A2DP】规范精讲[1]: 深入解析A2DP协议的核心架构

在蓝牙技术发展的早期阶段,音频传输主要通过SCO(同步面向连接)链路实现,这种设计主要针对语音通信,音质有限且功能单一。随着人们对无线高质量音频需求的增长,​​Advanced Audio Distribution Profile (A2DP)​​ 应运而生,成为蓝牙音频传输的技术基石。

byte轻骑兵的技术小窝 1万+

const常量的用法与易错点分析

本文通过对c++ primer的总结以及个人理解,总结成一篇博客帮助自己复习。 1.常量的使用: 我们定义一种变量,它的值不能被改变,可以使用关键字const对变量的类型进行限定。 我们举个栗子: //i正确,j错误,k正确, c正确。 //i,c正确初始化,j没有初始化,k是一个未经初始化的常量,一旦运行函数将被初始化。 const int i = 1; const int j; const int k = get_size(); const int c = i; 在多个文件共享const对象时,可以使

weixin_37651557的博客 646

宇树G1语音助手完整开发指南(上)——从零构建智能知识库对话系统

本文将详细介绍如何为宇树G1人形机器人开发一个,实现"唤醒 → 对话 → 查询 → 回复"的智能助手功能。

m0_47999117的博客 783

常量const详解

const是C++中的一个关键字,为什么会有const呢?主要是为了弥补因宏define产生的一些语法的错误。众所周知,define就是传统的宏定义,将某些常量赋值给一个变量,但由于宏定义在编译过程中只是单纯的进行赋值替换,并不会对赋值语句进行检查,因此会存在很多潜在的威胁,一旦定义出错,整个调用过程也讲出错。所以C++创始人为了避免这种错误才提出了用const来代替,同时会对所定义的常量进行语法检

xuexiopencv的博客 8360

MTK 平台功耗优化策略全解析:Clock 管控、GPU 同步与 Preview 降帧实战方案

在中高端移动终端影像系统中,Camera 模块已成为功耗的关键来源之一,尤其是在高帧率拍摄、AI 模式实时预览等场景下,ISP、Sensor、GPU 与 SoC 时钟频率的大幅提升极易引发系统发热与续航瓶颈。MTK 平台基于多级功耗控制机制,构建了包括 Clock Gate 管理、GPU 时序协同、预览流降帧、Pipeline 低功耗切换等在内的影像功耗优化策略。本文聚焦于 MTK Camera 系统中的核心功耗控制点,基于实际项目部署案例,系统拆解其在不同模式下的节能路径设计与调试方法,为终端厂商与影像系

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 2524

fast-lio运行步骤(使用velodyne数据)

使用fast-lio运行velodyne数据

ericdowney 4769

什么是const常变量(constant variable)

在定义变量时,如果加上关键字const,则变量的值,这种变量称为常变量(constant variable)。例如, 在定义常变量时必须同时对它初始化(即指定其值),此后它的值不能再改变。

wxi_Carol的博客 1719

国科大学习资料--VLSI测试与可测试设计--2020期末考试试题

国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 一、概念题 1简述可测试性测度与两个主要的测度指标的含义; 2以March C-算法为例,说明March算法的构成,以及March C-算法的故障覆盖率; 3“效果-原因”诊断法和“原因效果诊断法”的不同; 4列举四条扫描设计时出现的问 题及解决办法; 5最少写出1149.1与1500的五点不同; = = = = =

无名何许人的博客 1150

const char *str,char const *str,char *const str的区别,及const详解

c和c++中有三种定义: 1.const char *str, 2.char *const str, 3.char const *str. 现总结三者之间的区别: 一 char *const str 这是定义了一个指向字符的指针常量,即str的指向不能被修改,但是可以修改指针所指向的内容。 我们可以通过代码来验证修改str指向的内容: #include<iostream> using namespace std; int main() { char arr[] = "abcd

qq_56999918的博客 6296

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C++中const用法与C26496警告解析

const是C++中一个重要的关键字,合理使用可以提高代码的质量。C26496警告帮助我们遵循良好的编程实践,即尽可能使用const来声明变量。在编写代码时,应该养成习惯,默认使用const,除非需要修改变量。默认使用const- 除非需要修改变量,否则都声明为const遵循C26496建议- 对只赋值一次的变量使用const合理使用const引用- 避免不必要的拷贝为不修改状态的成员函数添加const注意const正确性- 避免不合理的const_cast。

2301_78865713的博客 1168

深度学习工具包 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++中const用法的总结

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34291004的博客 85

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C++ 中 const和define的区别

请区别用#define命令定义的符号常量和用const定义的常变量。符号常量只是用一个符号代替一个字符串,在预编译时把所有符号常量替换所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元。而常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可以用sizeof运算符测出其长度。与一般变量惟一的不同是指定变量的值不能改变。用#define命令定义符号常量是C语言所采用

u013006753的专栏 406

CONST

CONST(C中的CONST)编辑 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如C++、PHP5、C#.net、HC08 C。 中文名 C语言的关键

诺尔曼 388

const与volatile

在 C++ 中,和const_cast是两种常用的类型转换运算符,它们用于在不同类型之间进行转换,但用途和行为有所不同。在 C++ 中,volatile是一个关键字,用于告诉编译器某个变量可能会被程序之外的因素(如硬件、多线程、信号处理程序等)修改。以下是关于volatile在 C++ 中,volatile关键字可以与变量和指针结合使用,形成四种不同的语法形式。

m0_57699573的博客 868

php中const怎么用,php const用法详解

在编程中,我们一般用常量来定义那些在运行时不能被改变的常数值,下面让我们来看看php中的const吧,这个东西其实没有什么好说的,只是为了知识的完善而随便说下吧。在定义一个常量的时候我们可以使用const来修饰这个常量,使用const修饰的常量更其它的常量有点不同的地方就是:常量名前不要使用”$”,切记!当然这个常量值也是不能修改的,一旦定义就不能程序的任何地方进行“人为”的修改。这跟使用defi...

weixin_28998775的博客 461

static,const和typedef关键字的几种用途

static关键字至少有下列n个作用: (1)函数体内static变量的作用范围为该函数体  ,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内; (4)在类中的sta

1739

关于C++ const 的全面总结

转自:http://blog.csdn.net/Eric_Jo/article/details/4138548C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。...

weixin_34248849的博客 74

const限定符

学编程语言已经有一段时间了,我们经常会在C语言或者C++中碰到const限定符,而且总是会混淆,现在就总结下const的用法吧: 1:const用来定义对象(变量)    const int buffSize=512;    注意:1.定义时必须初始化       2.const对象默认为文件局部变量,必须显示地指定为extern,但是非const对象默认为extern        编...

weixin_30471065的博客 64

const用法

1.const的作用 (1)定义变量为常量 *常量C的值不能再被修改 *常量在定义时就要被初始化 const int C=10; (2)修饰函数参数,函数体内不能改变该参数 (3)修饰函数返回值 若返回值为指针,则返回的指针的内容不能被修改。且返回值只能赋给被const修饰的指针。 const int *GetValue(); const int *value; value = GetValue(); 2.易混用法 (1)修饰一般常量 int conxt a = 10; const int a = 10

weixin_53318672的博客 274

const的思考

 1、什么是const?常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const?const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用?①                  可以定义const常量,具有不可变性。例如:con

SearchLife的专栏 698
上一篇: 详解volatile 关键字
下一篇: 辨析常量指针、指针常量、常量引用、引用常量的区别
Raymond430
博客等级 码龄7年 91粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值