##学习第四天
一、标识符
1.标识符的命名规则
通用规范:
| 见名思意 | string name = ''小明''; | 无论什么场景,都建议遵循 |
| 下划线命名法 | string student_name = "小明"; string teacher_name = "小梁"; | 一般用于变量命名 |
| 小驼峰法 | string studentName = "小明"; | 一般用于变量、函数(方法)命名 |
| 大驼峰法 | string StudentName = “小明”; | 一般用于类命名 |
2.标识符的限制规则
在前面说过标识符:用来标识某个实体的符号,在编程语言中表示代码中所使用的各类名称。
1.目前接触到的标识符:符号常量名、变量名。
2.除此之外还有:类名称、文件名、方法|函数名等等,都是标识符。
标识符的使用限制分为两类:
1.硬性限制,称之为:规则(必须遵守)
2.软性限制,称之为:规范(尽量遵守)
在c++中,标识符命名的规则主要有3类:
1.内容限定:
即仅可使用字母、数字、下划线的组合,且数字不可开头
2.大小写敏感
即大写字母和小写字母的名称,是不同的可区分的。int num 不等同于int NUM
3.不可使用关键字
关键字是c++语言内置使用的特殊标识符,用户不可以占用,比如int,是无法用来命名变量、常量等。
二、数据类型
1.整型
在前面已经了解了int整型,在c++中,整型除了有int以外,还有其余的表现形式,如下表
| 数据类型 | 占用空间 | 取值范围 | 取值范围(科学计数) |
| short(短整型) | 2字节 | -32768 - 32767 | -2^15 - 2^15-1 |
| int(整型) | 4字节 | -2147483648 - 2147483647 | -2^31 - 2^31-1 |
| long(长整型) | Windows为4字节,Linux为4字节(32位),8字节(64位) | 4字节范围同上,8字节同下 | 4字节范围同上,8字节同下 |
| long long (长长整型) | 8字节 | -9223372036854775808 - 9223372036854775807 | -2^63 - 2^63-1 |
*小知识:sizeof()函数,用法:sizeof(数据),会告知得到数据所占用的字节。
弹幕说sizeof不是函数,是运算符/关键字,大家知道的可以评论区告诉我一下,互相学习,多谢!!!
2.无符号和有符号数字
在c++中,数字是有无符号和有符号之分的。
无符号:仅仅允许正数存在。
有符号:可以允许负数存在。
| 类型 | 所占bit数和字节数 | 取值范围 | 说明 |
| [signed] int | 32bit、4字节 | 上面有 | (有符号)整型 |
| unsigned int | 32bit、4字节 | 0 - 4294967295() | 无符号整型 |
| unsigned short | 16bit、2字节 | 无符号短 整型 | |
| unsigned long | 32bit、4字节或64bit、8字节 | 无符号长整型 | |
| unsigned long long | 64bit、8字节 | 无符号长长整型 |
[ ] 表示可选,可写可不写。如signed int 和 int 相同。
取值范围规则(n表示位数)
有符号:-2^(n-1) ~ 2^(n*-1) - 1
有符号:0 ~ 2^n - 1
3.实型
前面接触过实型,了解了float。
在c++中,实型除了有float以外,还有其余的表现形式,如下表
| 类型 | 有效位数(参考) | 字节数 | 说明 |
| float | 6~7 | 4字节 | 单精度浮点数 |
| double | 15~16 | 8字节 | 双精度浮点数 |
| long double | 18~19 | 16字节 | 多(长)精度浮点数 |
注意:实型数据没有signed和unsigned,默认全部有符号。
double和long double的有效位数仅做参考,ANSI C标注仅要求它们最少实现8字节,具体有效范围取决于所用编译器对标准的实现。
4.c++中常量类型的确定
一、 在c++中,对于常量的类型确定遵循最小原则:
| 常量 | 类型 |
| 整数 | int > unsigned int > long > unsigned long > long long > unsigned long long(“>”为优先级) |
| 小数 | double > long double |
1.按照所书写的字面量的值,来确定类型,默认int,从小到大进行适配。
2.或按照指定后缀确定。
二、在c++中,常量是可以有后缀的,具有不同的功能,如:
10L; //指定为long类型
123UL; //指定为 unsigned long类型
| 后缀(大小写均可) | 含义 |
| U | 表示无符号数 |
| L | 整数long类型、浮点数long double类型 |
| UL | unsigned long类型 |
| ULL | unsigned long long类型 |
| F | float类型 |
| D | double类型 |
总结:
在c++中,字面量的类型是自动确定的
整数默认为int,如范围不足,会自动扩容,顺序为:int -> unit -> long ->ulong ->long long -> u long long。
浮点数默认为double,范围不足会自动扩展到 long double。
5.字符型-char类型
char类型用来表示字符,同时支持有符号和无符号。
| 类型 | 字节数 | 范围 | 映射表 |
| [signed]char | 1字节 | -128 ~ 127 | ASCII表 |
| unsigned char | 1字节 | 0 ~255 | ASCII表 |
char类型其本质上是:数字,即在内存中存储的是实际上是数字。
可储存内容:ASCII表
无法储存中文(有别的办法)
通过ASCII表作为对照,字符 -> 数字存入,数字 -> 字符使用
6.转义字符
ASCII表中字符分为两类:非打印控制字符、打印字符
非打印控制字符:无法打印出形态,但是可以用于表示各种控制功能,如换行、制表等
如果要使用非打印控制字符的功能,可以使用:转义字符 的形式。
可借鉴 C++ 常量 | 菜鸟教程
https://www.runoob.com/cplusplus/cpp-constants-literals.html
转义字符:将普通的字符使用\作为开头,将其含义进行转换,对照得到ASCII表的控制字符的功能
\n 换行,\t 制表符,\\ 代表一个反斜杠本身,\'表示单引号, \" 表示双引号。
\t:效果等同于键盘的tab键,一个\t可以补充到8个字符位
6.字符串
在c++中有两种风格的字符串使用形式:
1.C语言风格字符串(了解)
char a[ ] = “hahaha”;//字符数组形式
char *b = "hahahi"; //指针形式
2.C++风格字符串
string c = "c++";
注意:
1.char a[ ] = "abc"; //字符数组模式,不可更改变量值(我自己在vs中可以通过a[0] = "a",来改改变下标的第一个字母,但是这样太麻烦了)
2.char *s = "abc"; 指针形式(vs中是这样的-const char* b = "hahihi";在vs中这个值是可以修改的,但是在clion这个指针形式是只读不可修改的)
7.字符串的拼接
字符串的拼接只需要用“+”连接就可以了。
(我用的vs,这个是在vs中的)
注意:想要使用to_string(),需要在头部加上#include <string>
string name = "小明";
string major = "物理";
int score = 80;
/*std::to_string str1 = std::to_string(score);*/ (这个是在网上搜的vs中不能使用)
cout << name + "的" + major + "成绩是" + to_string(score) << endl;//to_string(s core)
to_string():用来把()里的内容转换为字符串类型。
8.布尔型
布尔数据类型:
字面量有只有两个:
1.true 表示真(本质上是数字1)
2.false 表示假(本质上是数字0)
布尔类型主要用于程序中的逻辑判断,通过真或假来决定程序的执行流程。

被折叠的 条评论
为什么被折叠?



