C++初学者指南第一步---8.类型系统(基础)

C++初学者指南第一步—8.类型系统(基础)

1.用const声明常量

语法:

Type const variable_name = value;
类型 const 变量名 = 值
  • 值一经分配就无法更改
  • 初始值可以是动态的(= 在运行时设置)
int i = 0;
cin >> i;
int const k = i;  // "整形常量"
k = 5;  //  编译错误: k是const!

注意:如果你不需要在初始赋值后改变变量的值,总是将变量声明为const !

  • 避免错误:如果稍后不小心更改值,则不会编译。
  • 有助于更好地理解代码:清楚地传达值在代码中将保持不变。
  • 可以提高性能(可能进行更多编译器优化)

2.类型别名

语法:

using NewType = OldType;  //C++11
typedef OldType NewType;  //C++98
using real = double;
using ullim = std::numeric_limits<unsigned long>;
using index_vector = std::vector<std::uint_least64_t>;

注意:比起过时且模棱两可的类型定义,我们更喜欢更强大的using(稍后我们将看到原因)!

3.类型推导 auto

语法:

auto variable = expression;
  • 从赋值符右侧推导出的变量类型。
  • 通常更方便、更安全、更面向未来。
  • 对于泛型(与类型无关)编程也很重要。
auto i = 2;                         // int
auto u = 56u;                       // unsigned int
auto d = 2.023;                     // double
auto f = 4.01f;                     // float
auto l = -78787879797878l;          // long int
auto x = 0 * i;                     // x : int
auto y = i + d;                     // y : double
auto z = f * d;                     // z : double

4.常量表达式:constexpr (C++11)

  • 在编译时必须能够进行计算
  • 如果不在常量表达式上下文中调用,可以在运行时计算
  • 在常量表达式上下文中,所有的表达式本身必须是常量表达式。
  • constexpr 函数可能包含:
    只有一个返回语句 (C++11)
    多个语句 (C++14)
// 两个简单函数:
constexpr int cxf (int i) { return i*2; }
          int foo (int i) { return i*2; }
constexpr int i = 2;       // OK '2' 是字面量
constexpr int j = cxf(5);  // OK, cxf是常量表达式
constexpr int k = cxf(i);  // OK, cxf 和 i 是常量表达式
          int x = 0;       // 不是常量表达式
          int l = cxf(x);  // OK, 不是一个常量表达式上下文
// 常量表达式上下文:
constexpr int m = cxf( x );  // 
constexpr int n = foo( 5 );  // 

附上原文链接
如果文章对您有用,请随手点个赞!^_^
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值