c语言程序结构,全局变量,局部变量

【C语言】11 程序结构 阅读详情

c语言程序结构:

//
//  main.c
//  ProgrameStructDemo2
//
//  Created by 千 on 16/7/23.
//  Copyright © 2016年 kodulf. All rights reserved.
//

/*文件包含指令*/
#include <stdio.h>
/*宏定义*/
#define TRUE 1
#define FALSE 0

/*类型定义*/
typedef int BOOL;
typedef struct{
    int age;
    char name[10];
}Person;
/*全局变量*/
int global=100;
/*函数原型声明*/
int sum(int,int);
int avg(int,int);

/*主函数*/
int main(int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}

/*函数定义*/
int sum(int a, int b){
    return a+b;
}

int avg(int a,int b){
    return (a+b)/2;
}



作用域---》片警


局部变量磨人的就是自动存储期限,其实就是指的是java 里面的局部变量使用完了就就出栈了
全局变量默认的就是静态存储期限,其实就是java中的静态变量

局部变量也可以声明为静态存储期限的static,就是说初始化只要一次,第二次用的时候不需要初始化了。


//
//  main.c
//  ProgrameStructDemo
//
//  Created by 千 on 16/7/22.
//  Copyright © 2016年 kodulf. All rights reserved.
//
/*
 局部变量磨人的就是自动存储期限,其实就是指的是java 里面的局部变量使用完了就就出栈了
 全局变量默认的就是静态存储期限,其实就是java中的静态变量
 局部变量也可以声明为静态存储期限的static,就是说初始化只要一次,第二次用的时候不需要初始化了。
 */

#include <stdio.h>

//作用域---》片警

//g,k,age就是全局变量,当前文件中都可以访问,include 进来都是可以的
//全局变量要谨慎使用,多线程访问时的程序同步也是个问题

int g;
int k;
int age;

//局部变量有自动存储期限,调用完了立刻清楚,函数调用的时候分配内存,调用结束立刻释放
//a,b,temp为局部变量
int max(int a,int b){
    int temp;
    temp = a>b?a:b;
    return temp;
}

//如果局部变量前面加了static ,该变量由自动存储期限变为静态存储期限,那么这个变量在程序结束的时候才释放
//静态存储期限:一旦定义一直存在,直到程序结束

int min(int a,int b){
    //只初始化一次。第二次调用时候,默认的就不进行初始化了,(注意作用域是没有变的,还是局部变量)
    static int temp[]={1,2,3,4,5};
    
    return temp[0];
}

//当局部变量和全局变量相同的时候,就近原则,就是使用局部变量
int jj=100;
void f(int jj){
    printf("jj=%d\n",jj);
}


int main(int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    //当局部变量和全局变量相同的时候,就近原则,就是使用局部变量
    f(1111111);
    return 0;
}




Qt Installer Framework4.6.1的最基础使用1(win10+离线安装包 ) 因工作需要,win程序发布后,打包成一可执行exe文件,且兼容win7系统笔者记录了一些关键要点,供有需要的小伙伴使用。 阅读详情

相关推荐

stata:stata软件教程(人大十八讲)(1) 第一章 stata入门

第一章 stata入门1.1 安装1.2 启用和退出1.3 打开和查看数据1.4 寻求帮助与网络资源1.5 命令示例1.6 几个环境设置1.7 复习与练习1.8 附录 注:教材为:Stata 统计分析教程 stata软件教程(人大十八讲) 中国人民大学出版社 陈传波 1.1 安装 1.2 启用和退出 1.3 打开和查看数据 1.4 寻求帮助与网络资源 1.5 命令示例 1.6 几个环境设置 1.7 复习与练习 1.8 附录 ...

qq_47805483的博客 1万+

C语言开发单片机为什么大多数都采用全局变量的形式?

一个代码狗,成长经历都是莫名相似的。 你应该和我有类似的经历,虽然功能都能做出来,但是总觉得自己代码缺了点什么。 就是怎么写都觉得不够完美,感觉代码的水平介于专业和不专业之间。 自己的认知水平也非常有限,也不知道那些大佬写的程序是怎么样的。 曾经自以为,把某些功能独立写一个函数,然后多用指针程序就显得比较牛逼了。 其实有时候自己都觉得有点牵强,有种强行装逼的感觉,明明可以写的更简单更好理解。 我在这个阶段徘徊了3年左右,一直没有提升,主要当时主要用51单片机在做项目。 相对比较简单,基本上在一

无际单片机编程 2万+

GD32F303定时器配置:实现两路互补PWM输出与相位控制

本文详细解析了基于GD32F303定时器实现两路互补PWM输出与精确相位控制的方法。通过配置TIMER2的中间对齐模式,结合REMAP功能解决引脚复用问题,从硬件层面稳定生成相位差180度的互补PWM信号,适用于电机驱动、开关电源等对时序要求苛刻的应用场景。

weixin_29182481的博客 303

C语言——结构体、局部变量和全局变量、枚举

局部变量与全局变量    按照作用域不同将变量分为 局部变量和全局变量    局部变量:定义在函数内部变量    作用域:从定义的那一行开始直到所在代码结束    生命周期:从定义的那一行开始只直到其所在代码结束    注意点:内部代码块中定义与外部代码块中的同名变量,那么内部代码中变量会覆盖外部代码块中定义的变量    局部变量只有定义没有声明      全局变量:定在函数外部变

Megatron的专栏 9911

用LTspice仿真Buck电路输出电容:从参数计算到波形优化的全流程演示

本文详细介绍了使用LTspice仿真Buck电路输出电容的全流程,从理论计算到波形优化。通过解析关键参数如纹波电压、瞬态响应和ESR,结合工程计算方法和LTspice仿真技巧,帮助工程师优化Buck电路设计,解决输出纹波过大和瞬态响应不佳的问题。

night的博客 851

具身智能落地实战:制造业、物流与电力的工业级方案设计

具身智能是一种融合感知、推理与物理执行的智能范式,其核心在于构建具备因果建模能力、多模态闭环反馈和实时动作规划的行动主体。区别于通用AI或传统自动化,它依托多模态大模型、高精度力觉/触觉传感及Sim2Real仿真技术,实现对真实物理环境的深度理解与自适应交互。技术价值体现在可解释性决策、毫秒级跨模态协同与零停机容错能力,已规模化应用于制造业质检、物流破损鉴定、电力绝缘子巡检等强约束工业场景。本文聚焦‘行业应用方案解决方案’这一高频搜索需求,系统拆解从工位筛选、分层架构设计到72小时现场交付的全链路工程方法论

weixin_30952479的博客 300

C语言知识点总结(1):全局变量、typedef struct

全局变量的定义与声明: 两种错误例程 1.unresolved external symbol 例子包含两个C文件(test.c)和(first.c)和一个头文件(test.h)。下边具体展示下它们的代码。 test.h内容 ifndef _TEST_H #define _TEST_H extern int count; #endif test.c内容 #include <stdio.h> #include "test.h" extern void Fis_Cal

ferguswyf的博客 1205

WRFDA如何读取风云四号A 星的GIIRS数据?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1025

结构体的使用以及注意事项

结构体struct 存在着顺序问题,如果将s和stu调换位置就可以正常运行 如果结构体变量arr在main 函数中,那么arr为局部变量; 如果结构体变量arr在main 函数外,那么arr为全局变量。

qq_58264128的博客 1070

Qt EGLFS 图形后端详解

EGLFS (EGL Full Screen) 是Qt框架在嵌入式Linux系统中的高性能图形显示后端,它提供了直接基于EGL和OpenGL ES的硬件加速渲染解决方案。

浩瀚之水的专栏 511

PyTorch深度学习实战(4)——常用激活函数和损失函数详解

激活函数和损失函数是深度学习模型中重要组成部分,激活函数和损失函数的选择很大程度上决定了深度神经网络的性能和精度,需要根据具体问题的特点和数据分布等因素进行选择。在本节中,将介绍深度学习中常见的激活函数和损失函数,并说明不同函数的常见应用场景。

盼小辉丶的博客 1万+

C语言全局变量,局部变量,结构体分析,枚举类型笔记

1.局部变量 1>定义:在函数(dai'ma)

sen_xian的专栏 1950

组合导航 | RTK、IMU与激光雷达组合导航算法:原理、实现与验证

当激光雷达噪声增加至0.1m时,系统位置RMSE仅上升18%,验证了滤波算法的鲁棒性[110]:融合方案在RTK信号丢失30秒后,位置误差仍控制在1.5m内,显著优于IMU单独导航[28]:ESKF框架能有效建模传感器误差特性,状态向量需包含外参与时间偏移等关键参数。:传感器标定精度直接影响系统性能,建议每3个月进行一次重新标定。:IMU预积分与特征匹配是系统实时性的关键瓶颈,需重点优化。:维持10秒窗口内的关键帧,平衡精度与实时性[132]:特征匹配占总耗时的65%,可通过。

尘世冰封的专栏 942

【C语言学习】10分钟学会C语言函数与程序结构:局部变量VS全局变量,你真的搞定了吗?

局部变量就像是你家后院的小花园,只有你知道它的存在。在C语言中,局部变量是指在函数内部定义的变量,它只能在该函数内部使用。一旦函数执行完毕,局部变量就会被销毁,就像花园里的花儿在夜晚凋谢一样。与局部变量相反,全局变量就像是社区中央的大草坪,每个人都可以看到并且使用它。在C语言中,全局变量是在所有函数之外定义的变量,可以在整个程序中的任何地方使用。无论是秘密花园里的局部变量,还是社区大草坪上的全局变量,它们都有各自的优势和适用场景。在编写C语言程序时,选择合适的变量类型,就如同为植物挑选最适合的土壤一样重要。

java专栏 981

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

浅谈C语言——正式步入C语言学习(5)

程序结构 上新 本文章参考《C语言程序设计现代方法(第二版)》以及自己总结,不正确或者不适当的地方欢迎批评指正,主要以学习总结以及应用为主,在深入学习的同时也会及时更正不适合的地方。

weixin_43540527的博客 869

深度学习工具包 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语言之程序结构

C语言之程序结构 一个好的程序首先要有好的程序结构,我从变量和结构两个方面来做分析。 一、浅谈程序中的变量 一个程序架构最基本的就是程序变量,谈到程序中的变量,我们应该考虑两部分,一方面是变量的作用域,一方面是变量的生存期。 我们就从这两个角度对变量进行分析: (1)全局变量全局变量的声明要放在主函数之前,它的作用域是整个程序全局,生...

CloudCver 113

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C语言入门-6-函数与程序结构

或者。

perhop的博客 665

局部变量与全局变量——C语言——day11

(1) 主函数中定义的变量 (m,n) 也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。(2) 不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。例如,在 fl 函数中定义了变量 c, 倘若在 f2函数中也定义变量 c, 它们在内存中占不同的单元,互不混淆。(3) 形式参数也是局部变量。例如fl 函数中的形参 a, 也只在 fl 函数中有效。其他函数可以调用 fl 函数,但不能引用 fl 函数的形参a。

m0_61988812的博客 1441

【从零开始学C语言】知识总结一:C语言的基本知识汇总

来从零开始学习一下C语言吧!

致力于C语言C++知识分享! 616

学习C语言2023.11.26

不同的数据类型能够创建长度不同的变量,变量长度不同,存储的数据范围也就不同。我是一名大一学生,刚开始学习C语言,下面是我最近学习的C语言知识。:通俗来说,C语言就是人和计算机进行交流所使用的语言。1)C语言中把经常变化的值称为变量,不变的值称为常量。当局部变量和全局变量同名时,优先使用局部变量。变量在创建的时候就给一个初始值,就叫初始化。3)浮点型(小数):float。2)整形(整数):int。4)布尔类型:-bool。全局变量:在大括号外部。局部变量:在大括号外部。1)字符型:char。

xiaoxiaoID_的博客 44

C语言基本数据类型-笔记(二)

C语言基本数据类型 一、C语言概念 1、介于汇编语言和高级语言之间的中级语言,具有低级语言的特性,能编写系统软件,又是一种结构化的程序设计语言,即具有高级语言的特性,可用于编写应用软件。 2、编译原理: 源文件(.c)和头文件一起经由编译器编译成为目标文件(.obj),目标文件和库文件及其他用户生成的目标文件由链接器链接形成可执行文件(.exe)。 二、C语言程序结构和注释 1、工程由一个或多个.c文件构成;每一个.c文件可由预处理命令,全局声明变量,函数和注释组成。 2、注释用于描述特定的命令、函数或程序

微末观星 900

[2023/11/18]初识C语言(1)

初识C语言。

wufeixfp_的博客 169

第九章 程序结构

第九章将围绕C程序结构展开,涵盖局部变量(含静态类型,有自动/块作用域 )、全局变量(具静态存储与文件作用域,利弊共存 )、程序块(定义作用域等 )、作用域(含分类及声明规则 ),还介绍构建程序的编排顺序与函数注释建议,是程序结构设计的关键知识

2401_87493361的博客 769

C语言丨静态关键字static的三种用法总结

不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。这篇文章主要介绍了C语言中静态关键字static的作用,希望对大家学习C语言非常有帮助。

Hsuesh的博客 1093

「地表最强」C语言(九)关键字

C语言回顾 --- 关键字

B_White的博客 441

static C

1.   static 变量静态变量的类型 说明符是static。静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量。 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。2. 静态局部变量静态局部变量属于静态存储方式,它具有以下特点:(1)静态局部变量在函数内定义它的生存期为整个源程序,但是

四月的专栏 1583
上一篇: c语言枚举类型
下一篇: 蓝牙的规格,蓝牙的配置文件,中英文文档,Bluetooth profiles
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值