C++入门基础(一)

1、C++语法基础

1.1 第一个C++程序——输出Hello world

#include <iostream>
using namespace std;

int main()
{

	cout << "hello world" << endl;  //输出Hello world
	system("pause");
	return 0;

}

1.2  变量

作用:给一段制定的内存空间起名,方便操作内存

语法:数据类型  变量名=初始值;

eg :            int         a     =    10;

#include<iostream>
using namespace std;

int main()
{  
	int a = 10;       //给一段内存空间起名为a并赋值10.
	cout << "a=" << a << endl;   //输出a.
	system("pause");
	return 0;
}

1.3 常量

作用:用于记录程序中不可更改的程序。

C++中定义常量一般有两种方式:

1、#define 宏常量

语法:#define  常量名  常量值

注意:宏常量一般在文件的上方定义。

2、const 修饰的变量

语法:const  数据类型 常量名=常量值;

通常在变量定义前加关键字const,修饰该变量为常量,不可改变。

#include <iostream>
using namespace std;
#define month 12   //宏常量,month为12.

int main()
{
	cout << "一年一共有" << month << "个月" << endl;  //输出month的值

	const int day =7;  //const修饰的变量为常量
	cout << "一周一共有" << day << "天" << endl;  //输出day为7
	system("pause");
	return 0;
}

 注意:常量不可更改,示例代码1如下:

#include <iostream>
using namespace std;
#define month 12


int main()
{
	int month = 13;  //错误定义,month为常量不可更改。
	cout << "一年一共有" << month << "个月" << endl;
	system("pause");
	return 0;
}

此时运行程序,程序报错如下:month为常数。

 示例代码2如下:

#include <iostream>
using namespace std;

int main()
{
	const int day =7;
	int day = 8;   //错误定义,常量day不可改变。
	cout << "一周一共有" << day << "天" << endl;
	system("pause");
	return 0;
}

此时运行代码,代码报错:

 1.4 关键字

C++本身已经含有意义的字,命名时不能重复使用,重复使用会产生歧义。

C++关键字如下:

1.5  标识符命名规则

作用:C++规定给标识符(常量、变量)命名时,有一套自己的规则;

1、标识符不能是关键字;

2、标识符必须为字母或下划线、数字组成;

3、第一个字符必须为字母或者下划线;

4、标识符中字母区分大小写;

2、数据类型

C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,负责无法给变量分配内存。

2.1 整型

作用:整型变量表示的是整型类型的数据。

C++中能够表示整型的数据有以下几种方式。区别在于所占内存空间不同:

2.2 sizeof函数

作用:统计数据类型所占的内存空间

语法:sizeof(数据结构)

代码如下:

#include <iostream>
using namespace std;

int main()
{
	short a1 = 10;  //短整型数据类型
	int a2 = 10;  //整型数据类型
	long a3 = 10; // 长整型数据类型
	long long a4 = 10;  //  长长整型数据类型
	cout << "num=" << a1 << endl;
	cout << "num=" << a2 << endl;
	cout << "num=" << a3<< endl;
	cout << "num=" << a4 << endl;
	cout << "short占用的内存空间为" << sizeof(short) << endl;  //sizeof函数
	cout << "int占用的内存空间为" << sizeof(int) << endl;
	cout << "long占用的内存空间为" << sizeof(long) << endl;
	cout << "long long占用的内存空间为" << sizeof(long long ) << endl;
	system("pause");
	return 0;
}

2.3 实型(浮点型)

作用:用于表示小数。

分类:浮点型变量分为两种:1、单精度 float      2、双精度 double

区别:有效数字范围不同。

举例代码如下:

#include <iostream>
using namespace std;

int main()
{
	float a1 = 3.14f;  //float定义浮点型数据时,后面f的作用仅仅为了区分作用
	double a2 = 3.14;
	cout << "a1占多少字节" << sizeof(a1) << endl;  //计算a1所占的内存大小
	cout << "a2占多少字节" << sizeof(a2) << endl;  //计算a2所占的内存大小
	cout << "a1=" << a1 << endl;
	cout << "a2=" << a2 << endl;
	system("pause");
	return 0;
	}

​

注意:sizeof()函数括号中不仅可以放数据类型,也可以用于统计变量名和字面值所占的内存大小。

2.4 字符型

作用:字符型变量用于显示单个字符

语法;char 字符变量名='单个字符';

举例代码如下:

#include <iostream>
using namespace std;

int main()
{
	char ch = 'a';  //定义字符变量
	cout << "ch为:" << ch << endl;  //打印字符变量
	cout << "ch的数据类型字节为:" << sizeof(char) << endl;  //统计字符数据类型所占内存大小
	cout << "a的ASCII码为:" << (int)ch << endl;  //计算a的ASCII码值
	system("pause");
	return 0;
}

2.5 转义字符

作用:表示一些不能显示出来的ASCII字符。

 举例代码如下:

#include <iostream>
using namespace std;

int main()
{
	//转义字符  \n换行  \\代表输出一个\   \t水平制表符
	cout << "hello world" << endl;
	cout << "hello world\n";
	cout << "\\" << endl;
	cout << "aa\thello world\n";
	cout << "aaaa\thello world\n";
	cout << "aaaaaa\thello world\n";
	system("pause");
	return 0;
}

输出结果如下: 

 注:水平制表符\t作用是将光标移动到最接近8的倍数的位置,使得后面的输入从此开始。

2.6 字符串型

作用:用于表示一串字符

分类:C语言形式的字符串:char 变量名[ ]="字符串值";

           C++形式的字符串:string 变量名="字符串值";

注意:使用C++形式字符串定义形式时,需要在程序前添加字符串型头文件#include<string>

#include <iostream>
using namespace std;
#include <string>  //字符串头文件,只有添加它才可以使用string定义字符串

int main()
{
	//字符串两种类型  char型C语言型   string型C++类型
	char str1[] = "Hello world";
	cout << str1 << endl;
	string str2 = "hello world";
	cout << str2<<endl;
	system("pause");
	return 0;
}

2.7 布尔类型

作用:布尔数据类型代表真或者假。

语法:bool  布尔类型名称=“true”或者“false”;

bool类型只有两个值:

true表示真()本质为1.     false表示假(本质为0)

bool类型仅仅占用1个字节大小。

示例代码如下:

#include<iostream>
using namespace std;

int main()
{
//布尔类型 bool 只有两种结果 真或者假(本质上是1或者0)
	bool flag1 = true;
	cout << flag1 << endl;
	bool flag2 = false;
	cout << flag2 << endl;
	//查看布尔类型所占的字节大小
	cout << sizeof(flag1) << endl;
	system("pause");
	return 0;
	
}

运行结果如下:

2.8 数据的输入 

作用:用于从键盘上获取数据。

关键字:cin

语法:cin>>变量

示例代码如下:

#include <iostream>
using namespace std;
#include <string>

int main()
{
	//整型数据的输入
	/*int a = 0;
	cout << "请输入整型数据:" << endl;
	cin >> a;
	cout << a << endl;*/

	//浮点型数据的输入
	/*float b = 3.14f;
	cout << "请输入型浮点型数据:" << endl;
	cin >> b;
	cout << b << endl;*/

	//字符串数据的输入
	/*char str[] = "a";
	cout << "请给字符型数据赋值:" << endl;
	cin >> str;
	cout << str << endl;
	*/

	//字符串型数据类型输入
	/*string str = "a";
	cout << "请给字符串型数据赋值:" << endl;
	cin >> str;
	cout << str << endl;
*/

	//布尔类型数据输入
	bool flag = true;
	cout << "请给布尔类型数据赋值:" << endl;
	cin >> flag;
	cout << flag << endl;
}

3.运算符

作用:用于执行代码中的运算

主要类型如下:

 3.1 算术运算符

作用:用于处理四则运算

主要有以下几种:

示例代码1如下:

#include <iostream>
using namespace std;

int main()
{

	int a1 = 10;
	int a2 = 2;
	cout << "a1+a2=" << a1 + a2 << endl;  //打印a1+a2的值,结果为12.
	cout << "a1-a2=" << a1 - a2 << endl;  //打印a1-a2的值,结果为8.
	cout << "a1*a2=" << a1 * a2 << endl;  //打印a1*a2的值,结果为20.

	int b1 = 10;
	int b2 = 3;
	cout << "b1%b2=" << b1 % b2 << endl;  //打印b1除b2的余数,结果为1
	system("pause");
	return 0;
}

示例代码2如下 :

#include <iostream>
using namespace std;

int main()
{
	int a1 = 10;
	int a2 = 2;
	cout << "a1/a2=" << a1 / a2  << endl;  //打印a1/a2的值,结果为5.
	
	int a3 = 10;
	int a4 = 3;
	cout << "a3/a4=" << a3 / a4 << endl;  //打印a3/a4的值,整数除整数得到的值也是整数,所以结果为3.
	
	double a5 = 9.99;
	double a6 = 3.1;
	cout << "a5/a6=" << a5 / a6 << endl;  //小数也可以相除
	
}

示例代码3如下:

#include <iostream>
using namespace std;

int main()
{
	int b1 = 10;
	int b2 = 0;
	cout << "b1%b2=" << b1 % b2 << endl;  //除数为0报错
	system("pause");
	return 0;
}

 此时运行结果如下:

3.2 赋值运算符

作用:用于将表达式中的值赋给变量。

赋值运算符包括以下几种:

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	//+=
	int a = 1;  //给a赋值1
	a += 2;  //与a=a+2作用相同
	cout << a << endl;  //输出3
	//-=
    a = 3;  //重新给变量a赋值为3
	a -= 1;  //与a=a-1作用相同
	cout << a << endl;  //输出2
	//*=
	a = 6;  //重新给a赋值6
	a *= 3;  //与a=a*3作用相同
	cout << a << endl;  //输出18
	///=
	a = 6;  //重新给a赋值6
	a /= 3;  //与a=a/3作用相同
	cout << a << endl;  //输出2
	//%=
	a = 7;  //重新给a赋值7
	a %= 3;  //与a=a%3作用相同
	cout << a << endl;  //输出1
}

 3.3 比较运算符

作用:用于表达式的比较,并返回一个真值或者假值

比较运算符有以下几种:

 示例代码如下:

#include<iostream>
using namespace std;

int main()
{
	int a = 3, b = 2;
	//==
	cout << (a == b) << endl;
	//!=
	cout << (a != b) << endl;
	//<
	cout << (a < b) << endl;
	//>
	cout << (a > b) << endl;
	//<=
	cout << (a <= b) << endl;
	//>=
	cout << (a >= b) << endl;
}

3.4 逻辑运算符

作用:用于根据表达式的值返回真值或假值

逻辑运算符有以下几种:

示例代码如下:

#include<iostream>
using namespace std;

int main()
{
	int a = 10, b = 20, c = 0;
	//!
	cout << a << endl;  
	cout << !a << endl;  //逻辑运算中,非0即为1
	cout << !!a << endl;
	//&&
	cout << (a && b) << endl;
	cout << (a && c) << endl;
	//||
	cout << (a || b) << endl;
	cout << (a || c) << endl;
}

 4.程序流程结构

C和C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。

顺序结构:程序按照顺序执行,不发生跳转。

选择结构:依据条件是否满足,有选择的执行相应功能。

循环结构:依据条件是否满足,循环多次执行某段代码。

4.1 选择结构

4.1.1 if语句

作用:执行满足条件的语句。

if语句的三种形式:单行格式if语句、多行格式if语句、多条件的if语句

1、单行格式if语句:if(条件){条件满足执行的语句}

 2、多行格式if语句:if(条件){条件满足执行的语句}else{条件不满足时执行的语句}

示例代码如下:

#include<iostream>
using namespace std;

int main()
{
	//用户输入成绩,若成绩大于600则打印成绩
	int score = 0;
	cout << "请输入你的成绩" << endl;
	cin >> score;
	if (score > 600)
	{
		cout << score << endl;
	}
	//如果成绩大于600,则显示被西邮录取,否则二战
	if (score > 600)
	{
		cout << "被西邮录取" << endl;
	}
	else
	{
		cout << "二战" << endl;
	}
	system("pause");
	return 0;
}

3.多条件的if语句:if(条件1){条件1满足执行的语句}elseif(条件2){条件2满足执行的语句}......else{条件不满足时执行的语句}

 示例代码如下;

#include<iostream>
using namespace std;

int main()
{
	//用户输入成绩
	int score = 0;
	cout << "请输入你的成绩" << endl;
	cin >> score;
	//如果成绩大于600,打印被一本录取
	if (score > 600)
	{
		cout << score<<"被一本大学录取" << endl;
	}
	//如果成绩大于500,打印被二本大学录取
	else if (score > 500)
	{
		cout << score << "被二本大学录取" << endl;
	}
	//如果成绩大于400,打印被三本大学录取
	else if (score > 400)
	{
		cout << score << "被三本大学录取" << endl;
	}
	//低于400,二战
	else
	{
		cout << "二战" << endl;
	}
	system("pause");
	return 0;
}

4.嵌套if语句

作用:更清楚的根据条件输出

#include<iostream>
using namespace std;

int main()
{
	//用户输入成绩
	int score = 0;
	cout << "请输入你的成绩" << endl;
	cin >> score;
	//如果成绩大于600,打印被一本录取
	  //大于700,清华
	  //大于650,北大
	  //其他的被西邮录取
	if (score > 600)
	{
		cout << score<<"被一本大学录取" << endl;
		if (score > 700)
		{
			cout << score << "被清华大学录取" << endl;
		}
		else if (score > 650)
		{
			cout << score << "被北大录取" << endl;
		}
		else
		{
			cout << score << "被西邮录取" << endl;
		}
	}
	//如果成绩大于500,打印被二本大学录取
	else if (score > 500)
	{
		cout << score << "被二本大学录取" << endl;
	}
	//如果成绩大于400,打印被三本大学录取
	else if (score > 400)
	{
		cout << score << "被三本大学录取" << endl;
	}
	//低于400,二战
	else
	{
		cout << "二战" << endl;
	}
	system("pause");
	return 0;
}

5、选择结构案例-三只小猪称重

#include<iostream>
using namespace std;

int main()
{
	//输入三只小猪的体重
	int fansong = 0, xiaomeng = 0, liwen = 0;
	cout << "请输入第一头fansong小猪的体重" << endl;
	cin >> fansong;
	cout << "请输入第二头小猪xiaomeng的体重" << endl;
	cin >> xiaomeng;
	cout << "请输入第三头小猪liwen的体重" << endl;
	cin >> liwen;
	if (fansong > xiaomeng)
	{
		if (fansong > liwen)
		{
			if (liwen > xiaomeng)
			{
				cout << "fansong>liwen>xiaomeng,最重为fansong" << fansong << "斤" << endl;
			}
			else
			{
				cout << "fansong>xiaomeng>liwen,最重为fansong" << fansong << "斤" << endl;
			}
		}
		if (liwen > xiaomeng)
		{
			if (liwen > fansong)
			{
				if (fansong > xiaomeng)
				{
					cout << "liwen>fansong>xiaomeng,最重为liwen" << liwen << "斤" << endl;
				}
				else
				{
					cout << "liwen>xiaomeng>fansong,最重为liwen" << liwen << "斤" << endl;
				}
			}
			if (xiaomeng > fansong)
			{
				if (xiaomeng > liwen)
				{
					if (fansong > liwen)
					{
						cout << "xiaomeng>fansong>xiaomeng,最重为" << xiaomeng << "斤" << endl;
					}
					else
					{
						cout << "xiaomeng>liwen>xiaomeng,最重为" << xiaomeng << "斤" << endl;
					}
				}
			}
		}
		system("pause");
		return 0;
	}
}

4.1.2 三目运算符

作用:通过三目运算符进行简单的判断

语法:表达式1?表达式2:表达式3;

解释:如果表达式1为真,执行表达式2,并返回表达式2的结果。

           如果表达式1为假,执行表达式3,并返回表达式3的结果。

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	int a = 20, b = 10, c = 0;
	c = a > b ? a : b;
	cout << c << endl;
	(a > b ? a : b) = 100;
	cout << a << endl;
	cout << b << endl;
	system("pause");
	return 0;

}

4.1.3 switch语句

语法

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	//输入自己对电影的评分
	//10分满意,5-9一般,其他很差
	int score = 0;
	cout << "请为电影打分" << endl;
	cin >> score;
	switch (score)
	{
	case 10:
		cout << "您对电影满意" << endl;
	case 9:
		cout << "您对电影一般" << endl;
	case 8:
		cout << "您对电影一般" << endl;
	case 7:
		cout << "您对电影一般" << endl;
	case 6:
		cout << "您对电影一般" << endl;
	case 5:
		cout << "您对电影一般" << endl;
	case 4:
		cout << "您对电影评价很差" <<endl;
	case 3:
		cout << "您对电影评价很差" << endl;
	case 2:
		cout << "您对电影评价很差" << endl;
	case 1:
		cout << "您对电影评价很差" << endl;
	}
	system("pause");
	return 0;

}

4.2 循环语句

4.2.1 while循环语句

作用:满足循环条件,执行循环语句。

语法:while(循环条件){循环语句}

解释:只要循环条件的结果为真,就执行循环语句。

 示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	int num = 0;
	while(num<10)  //循环条件
	{
		cout << num << endl;
		num++;
	}
	system("pause");
	return 0;
}

4.2.2 while循环案例-猜数字

#include <iostream>
using namespace std;
//使用系统时间需要加这个头文件
#include<ctime>

int main()
{
	//根据系统时间生成一个随机数
	srand((unsigned int)time(NULL));
//系统随机生成一个范围在0-100随机数
	int num = rand() % 100 + 1;
	//cout << num << endl;
//玩家输入的值	
	cout << "请输入0-100内的一个数字" << endl;
	int a = 0;
	while (1)
	{
		cin >> a;
		if (a > num)
		{
			cout << "猜大了" << endl;
		}
		else if (a < num)
		{
			cout << "猜小了" << endl;
		}
		else if(a = num)
		{
			cout << "猜对了" << endl;
			break;
		}
	}
	system("pause");
	return 0;

}

4.2.3 do...while循环语句

作用:满足循环条件,执行循环语句

语法:do{循环语句}while(循环条件);

注意:与while的区别在于do...while会先执行一次循环语句,再判断循环条件

 示例代码如下:

#include<iostream>
using namespace std;

int main()
{
//使用dowhile循环语句输出0-9数字
	int num = 0;
	do
	{
		cout << num << endl;
		num++;
	} 
	while (num < 10);
	system("pause");
	return 0;
}

4.2.4 循环案例

案例名称:水仙花数

案例描述:水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身

eg:1^3+5^3+3^3=153

请利用do...while语句,求出所有三位数中的水仙花数。

案例分析如下:

 示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	int num = 100;
	do
	{
		num++;
		int a = 0;
		int b = 0;
		int c = 0;
		a = num % 10;   //获取num的个位数字
		b = num / 10 % 10;  //获取num的十位数字
		c = num / 100;  //获取num的百位数字
		if (  a*a* a + b * b * b + c * c * c == num)  //判断是否为水鲜花数
			cout << num << endl;

	} 
	while (num < 1000);
	system("pause");
	return 0;

}

4.2.5 for循环语句

作用:满足循环条件,执行循环语句

语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		cout << i << endl;
	}
	system("pause");
	return 0;
}


4.2.6 循环案例-敲桌子

案例描述:从1开始数到数字100,如果个位含有7,或者数字十位含有7,或者是7的倍数,我们打印敲桌子,其他数字直接打印输出。

案例分析:

 示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 1; i < 100; i++)
	{
		if (i % 7 == 0||i/10==7||i/10==7)
		{
			cout << "敲桌子" << endl;
		}
		else

			cout << i << endl;
			
	}
	system("pause");
	return 0;
}

4.2.7 嵌套循环

作用:在循环体中嵌套一层循环

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i < 10; i++)  //外层循环
	{
		for (int j = 0; j < 10; j++)  //内层循环,外层循环一次,内存循环一周
		{
			cout << "* ";  

		}
		cout << endl;
	}
	system("pause");
	return 0;
}

4.2.8 嵌套循环案例-打印乘法表

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 1; i < 10; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			cout << i << "*" << j << "=" << i * j<<"  ";
		}
		cout << endl;
	}
	
	system("pause");
	return 0;

}

4.3 跳转语句

4.3.1 break语句

作用:用于跳出选择结构或者循环结构

break语句使用场景:

1、出现在switch条件语句中,作用是终止case并且跳出switch

2、出现在循环语句中,作用是跳出当前的循环语句

3、出现在嵌套循环中,跳出最近的内层循环语句

示例代码1如下:

#include <iostream>
using namespace std;

int main()
{
	cout << "请选择冒险难度" << endl;
	cout << "1、普通难度" << endl;
	cout << "2、中等难度" << endl;
	cout << "3、困难难度" << endl;

	int num = 0;
	cin >> num;
	switch (num)
	{
	case 1:
		cout << "你选择的的是普通难度" << endl;
	case 2:
		cout << "你选择的的是中等难度" << endl;
	case 3:
		cout << "你选择的的是困难难度" << endl;

	}
	system("pause");
	return 0;
}

预想结果:

当你输入1时,打印出来“您选择的是普通难度”,但是运行结果如下所示:

 为啥会出现这种情况呢?因为当你选择1时,switch语句开始执行case 1,执行结束后会按照顺序继续执行case 2和case 3,所以此时我们需要break语句进行退出。

代码如下:

#include <iostream>
using namespace std;

int main()
{
	cout << "请选择冒险难度" << endl;
	cout << "1、普通难度" << endl;
	cout << "2、中等难度" << endl;
	cout << "3、困难难度" << endl;

	int num = 0;
	cin >> num;
	switch (num)
	{
	case 1:
		cout << "你选择的的是普通难度" << endl;
		break;
	case 2:
		cout << "你选择的的是中等难度" << endl;
		break;
	case 3:
		cout << "你选择的的是困难难度" << endl;
		break;

	}
	system("pause");
	return 0;
}

运行结果如下: 

 示例代码2如下:

出现在for循环中:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i < 10; i++)  
	{
		if (i == 5)  //当i=5时,跳出for循环
		{
			break;
		}
		cout << i << endl;
	}
	system("pause");
	return 0;
}

示例代码3如下:出现在嵌套循环中:

在打印星图这个案例,实现结果如下:

现在我们想在内循环当大于5时,停止内循环的执行;

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i < 10; i++)  //外层循环
	{
		for (int j = 0; j < 10; j++)  //内层循环,外层循环一次,内存循环一周
		{
			if (j > 5)
			{
				break;
			}
			cout << "* ";
		}
		cout << endl;
	}
	system("pause");
	return 0;
}

实现结果如下:

4.3.2 continue语句 

作用:在循环中,跳出本次循环剩余尚未执行的语句,转而执行下次循环;

示例代码如下:

#include <iostream>
using namespace std;
//打印0-100的所有奇数
int main()
{
	for (int i = 0; i < 100; i++)
	{
		if (i % 2 ==0)  //如果i为偶数,退出循环;
		{
			continue;
		}
		cout << i << endl;
	}
	system("pause");
	return 0;
}

4.3.3 goto语句

作用:可以无条件跳转语句

语法:goto 标记

解释:如果标记的名程存在,执行到Goto语句时,会跳转到标记的位置

示例代码如下:

#include <iostream>
using namespace std;

int main()
{
	cout << "1、*****" << endl;
	cout << "2、*****" << endl;
	goto flag;
	cout << "3、*****" << endl;
	cout << "4、*****" << endl;
	flag:
	cout << "5、*****" << endl;
	system("pause");
	return 0;
}

结果如下: 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值