目次
1.字面常量
2.标识符和关键字
起名的限定规则
3.符号常量
界说语法
4.变量的基础使用
1.变量的声明
2.变量的赋值
5.变量的特性
6.变量的快速界说
7.标识符的命名规范
8.标识符的限制规则
9.数据类型-整型
sizeof()函数
10.无符号和有符号数
11.数据类型-实型
12.c++常量类型的确定
13.数据类型-char类型
14.转义字符
15.数据类型之字符串
16.字符串的拼接
17.数据类型之布尔型
18.cin数据输入
19.cin中文乱码解决
20.算术运算符
21.赋值运算符 “=”
22.比较运算符
C语言风格字符串
C++风格字符串
23.逻辑运算符
24.三元运算符
训练:买不买糖
1.字面常量
常量:在步伐实行过程中值不会改变的量。
常量分为字面常量和符号常量。字面常量是被书写到代码内的常量,也称字面量。
- #include <iostream>
- using namespace std;
- int main() {
- //整型、实型、字符、字符串
- //整型(整数)
- 21;
- //实型(小数)
- 180.5;
- //字符,''进行包围,单个字符
- 'c'; // 只能是一个字符,不能多个也不能0个
- //字符串 ""进行包围,任意个字符
- ""; //空字符串
- "c"; //单个字符
- "hello"; //多个字符
- //通过cout将这些内容全部打印到控制台上
- cout << 21 << endl;//ctrl+d复制该行
- cout << 180.5 << endl;
- cout << 'c' << endl;
- cout << "hello" << endl;
- return 0;
- }
复制代码 输出:
2.标识符和关键字
在c++代码中会涉及到很多命名的场景,比如变量的命名以及后续学习的类、函数等命名。这些命名我们统一称之为:标识符,即表示某类实体的符号(名称)。
起名的限定规则
- 只允许字母、数字、下划线的组合
- 数字不能开头
- 不能使用关键字名
3.符号常量
符号常量:使用标识符去界说的常量。
简单来说,符号常量是给常量起一个名字。
界说语法
- #define :宏下令(后续学习) 固定开头
- 标识符(名称):符号常量的名称,是标识符的一种,字母建议全部大写
- 常量:常量值
- #define FAT_BMI 28 // 肥胖BMI
- #define J2C_RATE 4.19 // 焦耳和卡路里转换率
复制代码 符号常量的界说不需要分号结尾。使用符号常量直接用它的名字即可。
- #include <iostream>
- using namespace std;
- #define FAT_BMI 28
- #define J2C_RATE 4.19
- int main() {
- //使用符号常量示例
- cout << FAT_BMI << endl;
- cout << "焦耳转卡路里需要除以: " << J2C_RATE << endl;
- return 0;
- }
复制代码 代码编写没有问题,但是输出出现了中文乱码
解决方式有2种:
1. 引入Windows.h库,并参加一句固定写法SetConsoleOutputCP(CP_UTF8);
- #include <iostream>
- #include <Windows.h>
- using namespace std;
- #define FAT_BMI 28
- #define J2C_RATE 4.19
- int main() {
- SetConsoleOutputCP(CP_UTF8); // 设置控制台输出的字符编码
- //使用符号常量示例
- cout << FAT_BMI << endl;
- cout << "焦耳转卡路里需要除以: " << J2C_RATE << endl;
- return 0;
- }
复制代码 2. system("chcp 65001");(较方便,但是会额外输出内容)
- #include <iostream>
- // #include <Windows.h>
- using namespace std;
- #define FAT_BMI 28
- #define J2C_RATE 4.19
- int main() {
- system("chcp 65001");
- // SetConsoleOutputCP(CP_UTF8); // 设置控制台输出的字符编码
- //使用符号常量示例
- cout << FAT_BMI << endl;
- cout << "焦耳转卡路里需要除以: " << J2C_RATE << endl;
- return 0;
- }
复制代码 输出
- Active code page: 65001
- 28
- 焦耳转卡路里需要除以: 4.19
复制代码 4.变量的基础使用
变量:在步伐运行时能存储计算结果或表示值的抽象概念。也就是步伐运行时记录数据。
1.变量的声明
变量名也是标识符,需要符合标识符命名规则,且建议使用小写字母(区分符号常量)
2.变量的赋值
5.变量的特性
变量存储数据,是可以发生改变的,只需要再一次赋值即可。
- bmi = 30;
- bmi = = bmi - 2;
复制代码 6.变量的快速界说
除了基本的:先声明(界说)后赋值的变量应用外,变量还支持多种快捷的使用形式。
快捷方式1:变量的声明和赋值同时进行:
- int num = 10;
- string name = "Jay Chow";
复制代码 快捷方式2:一次性声明多个变量:
- int a, b, c;
- a = 10;
- b = 20;
- c = 30;
复制代码 快捷方式3:一次进行多个变量的声明并同时赋值:
- int a = 10, b = 20, c = 30;
复制代码 7.标识符的命名规范
符号常量:满足标识符的硬性要求下,若使用英笔墨母,应全部大写。
变量:满足标识符的硬性要求下,如果使用英笔墨母,不应全部大写(可大小写组合或纯小写)。
通用规范要求:
- 见名知义:标识符的命名应当有具体的含义。
- string name = "小明";
- string a = "小明";
复制代码 - 下划线命名法:当命名标识符的时候,为满足见名知义要求,可能会使用多个单词或数字的组合。为了区别每一个单词,可以用下划线进行区分,这种方式称之为下划线命名法。
- string student_name = "小明";
- string teacher_name = "王老师";
复制代码 如果使用该命名法,英文单词可以全部小写。下划线命名法一样平常用于变量。
- 小驼峰法
- string studentName = "小明";
- string teacherName = "王老师";
复制代码 小驼峰命名法一样平常用于变量、函数、方法命名。
4.大驼峰法:每个单词的首字母都大写
- string StudentName = "小明";
- string TeacherName = "王老师";
复制代码 大驼峰命名法一样平常用于类命名。
8.标识符的限制规则
目前打仗到的标识符:符号常量名、变量名。
除此之外还有:类名称、文件名、方法/函数名等。
标识符的使用限制分为硬性规则和软性规范
硬性规则
- 内容限定:仅可使用字母数字下划线,且数字不可开头。
- 大小写敏感:大写和小写字母的名称是差别的可区分的。
- 不可使用关键字。
9.数据类型-整型
在C++中,整型除了有int,还有下面几种表现形式:
数据类型 | 占用空间 | 取值范围 | 取值范围(科学计数) | short(短整型) | 2byte | -32768~32767 | -2^15~2^15-1 | int(整型) | 4byte | -2147483648~214743647 | -2^31~2^31-1 | long(长整型) | Windows为4字节,Linux为字节,8字节 | 4字节范围同上,8字节范围同下 | 4字节范围同上,8字节范围同下 | long long(长长整型) | 8字节 | -9,223,372,036,854,775,808 ~9,223,372,036,854,775,807 | -2^63~2^63-1 | sizeof()函数
通过在sizeof()函数括号传入数据,就可以提供数据具体占多少字节。
- long long a = 233;
- cout << sizeof(a) << endl;
复制代码 10.无符号和有符号数
在c++中,数字是有符号和无符号之分的。有符号:可以允许负数存在;无符号:仅允许正数存在。
[]表示可选,可写可不写。如signed int == int。
取值范围规则(n表示位数):
有符号:-2^(n-1)~2^(n-1)-1
无符号:0~2^n-1
- #include <iostream>
- #include <Windows.h>
- using namespace std;
- int main() {
- SetConsoleOutputCP(CP_UTF8);
- // 有符号 signed(可选) 无符号unsigned(必选)
- signed int num1 = 10;
- int unm2 = 20;
- unsigned int num3 = 30; //无符号的数字必须大于等于0
- cout << num1 << endl;
- cout << unm2 << endl;
- cout << num3 << endl;
- return 0;
- }
复制代码 无符号数的快捷写法:
- //无符号的int、short、long有快捷写法
- u_short num4 = 40;
- u_long num5 = 50;
- u_int num6 = 60;
复制代码 11.数据类型-实型
在c++中,实型有float、double、long double
实型数据没有signed和unsigned之分,全部都是有符号的。
有效位数包含整数、小数点、小数
12.c++常量类型的确定
在C++中,常量是可以有后缀的,具有差别的功能,如:
- 10L; //指定为long类型
- 123UL; //指定为unsigned long类型
复制代码
不带后缀时,整数默认最小类型为int,小数默以为double。有时候double会浪费空间,例如变量为3.1,这时可以使用后缀3.14f使其为float类型。
13.数据类型-char类型
char表示字符类型,同时支持有符号和无符号。
取值范围是整数范围:char类型本质是数字,即在内存中存储的实际上是数字。数字存储通过ASCII表和字符一一对照。char无法存储中文。
- #include <iostream>
- #include <windows.h>
- using namespace std;
- int main() {
- SetConsoleOutputCP(CP_UTF8);
-
- char a = 97; //不添加单引号时char的值
- cout << a << endl;
- return 0;
- }
复制代码 输出为 a
- char b = 'a';
- cout << b + 1 << endl;
复制代码 输出:98
缘故原由:当前的写法按照数字进行格式化
- char c = 'a' + 3;
- cout << c << endl;
复制代码 输出:d
14.转义字符
ASCII码表中的字符分为非打印控制字符和打印字符2类。
非打印控制字符:无法打印出形态,但是可以用于表示各种控制功能,如换行、制表等。
使用非打印字符可以通过“转义字符”的形式:
- #include <iostream>
- #include <windows.h>
- using namespace std;
- int main() {
- SetConsoleOutputCP(CP_UTF8);
- //转义字符练习
- cout << "你好呀 \n 我喜欢你" << endl;
- cout << "---------------------------" << endl;
- // 制表符\t 效果等同于键盘的tab键,一个\t可以补充8个字符位
- cout << "Hello\titheima" << endl;
- cout << "a\titcast" << endl;
- cout << "---------------------------" << endl;
- cout << "\" << endl;
- cout << """ << endl;
- return 0;
- }
复制代码 输出:
- 你好呀
- 我喜欢你
- ---------------------------
- Hello itheima
- a itcast
- ---------------------------
- \
- "
复制代码 15.数据类型之字符串
c++有2种字符串使用形式:
- char a[] = "itheima"; //字符数组形式
- char *b = "itcast"; //指针形式
复制代码
- #include <iostream>
- #include <windows.h>
- using namespace std;
- int main() {
- SetConsoleOutputCP(CP_UTF8);
- //C语言风格的字符串
- char *str = "你好";
- char str2[] = "你好";
- //C++语言风格的字符串
- string str3 = "你好";
- //输出
- cout << str << endl;
- cout << str2 << endl;
- cout << str3 << endl;
- return 0;
- }
复制代码 使用s1风格界说的字符串是只读的,无法再修改。
16.字符串的拼接
拼接操作使用+号进行连接。
- string major = "物理";
- string class name = "一班";
- string msg = "我的专业是" + major + ",我来自" + class;
复制代码 加号仅适用于字符串之间的连接,对于非字符串(如数字),需要将内容转换为字符串。
可以使用c++内置类型to_string()函数将内容转换为字符串形式。
17.数据类型之布尔型
布尔型(bool)的字面形式分为真(true)和假(false)。它的重要作用是流程控制。
18.cin数据输入
格式
- 数据类型 变量; //声明变量
- cin >> 变量; //输入的数据提供给变量
复制代码 19.cin中文乱码解决
如果实行使用cin读取中文会出现中文无法辨认,解决如下:
1.按住ctrl+shift+alt+/,选择registry注册表
2.取消选择run.processes.with.pty
运行结果就恢复正常了
- ===== 个人信息 =====
- 姓名:测试
- 年龄:111岁
复制代码 修改该选项后,cout中文也不需要添加额外的语句了。
20.算术运算符
运算符是一种符号,告诉编译器实行特定的数学或逻辑操作。
- 前置递增:b=++a,表示先计算a=a+1,再把a赋值给b
- 后置递增:b=a++,表示先把a的值赋给b,再计算a=a+1
- 前置递减:b=--a,表示先计算a=a-1,再把a赋值给b
- 后置递减:b=a-,表示先把a的值赋给b,再计算a=a-1
- #include <iostream>
- using namespace std;
- int main() {
- // 单目运算符:+(正号)、-(负号)
- int num1 = +10; // 正数
- int num2 = -10; // 负数
- cout << "单目运算符示例:" << endl;
- cout << "+10 = " << num1 << ", -10 = " << num2 << endl << endl;
- // 双目运算符:+、-、*、/、%
- cout << "双目运算符示例:" << endl;
- cout << "5 + 5 = " << 5 + 5 << endl;
- cout << "5 - 3 = " << 5 - 3 << endl;
- cout << "5 * 5 = " << 5 * 5 << endl;
- cout << "10 / 3 = " << 10 / 3 << " (整数除法舍去小数)" << endl;
- cout << "10 % 3 = " << 10 % 3 << " (取余运算)" << endl << endl;
- // 自增/自减:前置与后置的区别
- int a = 5, b = 5;
- int c = ++a; // 执行赋值语句(=)前,先对a自增(a=6),再将a的值赋给c(c=6)
- int d = b++; // 执行赋值语句(=)前,先取b的当前值赋给d(d=5),再对b自增(b=6)
- int x = 8, y = 8;
- int z = --x; // 执行赋值语句(=)前,先对x自减(x=7),再将x的值赋给z(z=7)
- int w = y--; // 执行赋值语句(=)前,先取y的当前值赋给w(w=8),再对y自减(y=7)
- cout << "自增/自减运算符示例:" << endl;
- cout << "前置自增 (++a):" << endl;
- cout << " a = " << a << ", c = " << c << " (先自增,后赋值)" << endl;
-
- cout << "后置自增 (b++):" << endl;
- cout << " b = " << b << ", d = " << d << " (先赋值,后自增)" << endl;
-
- cout << "前置自减 (--x):" << endl;
- cout << " x = " << x << ", z = " << z << " (先自减,后赋值)" << endl;
-
- cout << "后置自减 (y--):" << endl;
- cout << " y = " << y << ", w = " << w << " (先赋值,后自减)" << endl;
- return 0;
- }
复制代码 21.赋值运算符 “=”
赋值运算符是一种双目运算符,用于将右侧表达式的值赋予左侧变量。
- #include <iostream>
- using namespace std;
- int main()
- {
- // 初始化变量
- int num = 2;
- cout << "初始值: " << num << endl;
- // 基本赋值运算符 =
- num = num + 3;
- cout << "使用 num = num + 3 后: " << num << endl;
- // += 运算符
- num += 3; // 等价于 num = num + 3
- cout << "使用 num += 3 后: " << num << endl;
- // -= 运算符
- num -= 2; // 等价于 num = num - 2
- cout << "使用 num -= 2 后: " << num << endl;
- // *= 运算符
- num *= 2; // 等价于 num = num * 2
- cout << "使用 num *= 2 后: " << num << endl;
- // /= 运算符
- num /= 3; // 等价于 num = num / 3
- cout << "使用 num /= 3 后: " << num << endl;
- // %= 运算符
- num %= 2; // 等价于 num = num % 2
- cout << "使用 num %= 2 后: " << num << endl;
- return 0;
- }
复制代码 输出:
- 初始值: 2
- 使用 num = num + 3 后: 5
- 使用 num += 3 后: 8
- 使用 num -= 2 后: 6
- 使用 num *= 2 后: 12
- 使用 num /= 3 后: 4
- 使用 num %= 2 后: 0
复制代码 22.比较运算符
比较运算符是双目运算符,对两个数进行比较并得到lbool型结果。
C语言风格字符串
如果使用运算符进行比较,是对比内存地点而非内容
所以需要使用C语言函数strcmp进行比较
- #include<cstring>
- int result = strcmp(s1,s2);
复制代码 结果分为-1(s1<s2),0(s1=s2),1(s1>s2)三种
C++风格字符串
进行对比的两个字符串至少有一个要是string类型即可使用运算符C++对string类型到场的运算符进行了重载,确保可以正常比较。
- #include <iostream>
- #include <cstring>
- using namespace std;
- int main()
- {
- // 比较运算符:
- // == 等于 != 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于
- // 0 表示 false(假),1 表示 true(真)
- int num1 = 5;
- int num2 = 5;
- bool r1 = (num1 == num2); // 判断是否相等
- bool r2 = (num1 != num2); // 判断是否不等
- cout << "num1 == num2 : " << r1 << endl; // 修正:"+=" 改为 "=="
- cout << "num1 != num2 : " << r2 << endl;
- // 比较运算必须加括号,因为 << 优先级高于 <、> 等运算符
- cout << "3 < 5 : " << (3 < 5) << endl; // 正确写法:先计算 3<5,再输出
- cout << "3 > 5 : " << (3 > 5) << endl;
- cout << "3 <= 5 : " << (3 <= 5) << endl;
- cout << "3 >= 5 : " << (3 >= 5) << endl;
- // 字符串的比较
- // C语言风格的字符串比较 char a[] char *str
- // 直接用比较运算符是将内存地址进行对比,得到的结果为0(假)
- char a[] = "hello";
- char *str = "hello";
- cout << "a == str : " << (a == str) << endl;
- // strcmp进行比较
- cout << "a == str : " << strcmp(a,str) << endl; // 正确写法:"==
- // 字面量型进行比较
- cout << "字面量c是否大于a: " << ('c' > 'a') << endl; // 正确写法:( 'c' > 'a'
- // C++风格的字符串比较 string a
- string b = "hello"; //c++风格
- char c[] = "hello"; //c风格
- cout <<"b == c : " << (b == c) << endl;
- return 0;
- }
复制代码 输出:
- num1 == num2 : 1
- num1 != num2 : 0
- 3 < 5 : 1
- 3 > 5 : 0
- 3 <= 5 : 1
- 3 >= 5 : 0
- a == str : 0
- a == str : 0
- 字面量c是否大于a: 1
- b == c : 1
复制代码 23.逻辑运算符
逻辑运算符是单/双目运算符,对单/多个表达式进行逻辑判定。
逻辑运算符常用在逻辑判定语句中。这部门代码较简单,且以后会在选择循环布局涉及到,因此为整理示例代码。
24.三元运算符
用于对逻辑进行判定,根据判定结果提供差别值。
其含义为:如果表达式的结果为true,那么提供值为1的结果;如果为false,那么提供值2的结果。示例:
- int num1, num2;
- cin >> num1;
- cin >> num2;
- string value = num1 > num2 ? "A" : "B";
- cout << value << endl;
复制代码 训练:买不买糖
-
- #include <iostream>
- using namespace std;
- int main() {
- int firstScore, secondScore;
- cout << "请输入小明第一次考试的成绩(0-100):" << endl;
- cin >> firstScore;
- cout << "请输入小明第二次考试的成绩(0-100):" << endl;
- cin >> secondScore;
- cout << "对小明的考试成绩进行判断,结果是:"
- << (secondScore > firstScore ? "买糖" : "不买糖") << endl;
- return 0;
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |