C++ primer Plus学习笔记第三章

3.1 简答变量
3.1.1变量名
命名规范:
只能使用字母字符数字和下划线
首字母不能是数字
区分大小写
不能将C++关键字作为名字
两个下划线开头或下划线加大写字母开头的名称被保留给实现(编译器及其使用的资源)使用,以一个下划线开头的名称呗保留给实现,用作全局标识符
正常没有长度限制,有些平台有,ANSI C(C99b标准)中前63个有效

常用前缀
str或sz表示以空字符结束的字符串
b表示bool
p表示指针
c表单个字符
https://wenku.baidu.com/view/fef3342b82c4bb4cf7ec4afe04a1b0717fd5b327.html
3.1.6
int c = 42; // 十进制
int c = 042; // 8进制
int c = 0X42; // 16进制
3.1.8
wchar_t bob = L’p’;
char16_t ch1 = u’q’;
char32_t ch2 = U’\U0000222b’;
3.1.9
bool a = -100; // true,非0位true
3.2
const > #define因为:
const 有类型
可以使用C++的作用域规则将定义限制在特定文件或函数中
可以将const用于更复杂的类型(数组、结构)
3.3
浮点数组成 = 基准值 + 缩放因子
通常:float 32位,double64位,long double 80/96/128,这三种指数范围至少是-37~37
flot 保证6为精确,double保证15位精确
浮点数范围大、运算慢 、精度低
浮点常量默认double
3.4.4
列表初始化对类型转换要求更严格
char c1 {31325}; // 不允许缩窄
int x = 66;
char c4 {x}; // 不允许,x是int,可能很大
x = 31325;
char c5 = x; // 允许
表达式中类型转换:
等号右边逻辑,与左值类型无关
如果有long double则全部转换为long double
否则,如果有double则全部转换为double
否则,如果有float则全部转换为float
否则,做整型提升
{
整型提升:
bool/char/unsigned char/signed char/short转为int
如果 short比int短,则unsigned short转化为int;如果short和int长度相同,则unsigned short 转换为unsigned int
wchar转化为(int、unsigned int、long、unsigned long)中第一个宽度足够的类型
}
如果符号相同,则低转高
否则,如果符号不同,且高级操作数类型可以表示所有低级操作说所有类型,则低转否则,将两个操作数都转换为有符号类型的无符号版本

整型级别:
long long,long,int ,short, signed char
char = signed char = unsigned char
wchar, char16_t, char32_t 级别与其底层类型相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值