一些基础概念

1.基本内置类型,可以分为两种:

  • 空类型(void)
  • 算术类型:
    • 整型(字符、布尔值、整型数);此外除了布尔值和扩展的字符型,整型又可分为带符号和无符号两类
    • 浮点型

2.类型转换

  • 非布尔类型赋值给布尔类型:初始值为0则为true,否则为false;
  • 布尔类型赋值给非布尔类型:false为0,true为1
  • 浮点数类型赋值给整数类型:保留小数点前的部分
  • 整数类型赋值给浮点类型:小数部分记为0
  • 给无符号类型赋值为一个超出其表示范围的值: 初始值对无符号类型表示数值总数取模后的余数
  • 给带符号类型赋值为一个超出其表示范围的值: 结果是未定义,导致程序继续工作或崩溃或产生垃圾数据
  • 算数表达式中既有无符号数又有int值时,int值会转换为无符号数

3.字面值常量

字面值常量,字面意思,这样的值一望就知道

  • 整型字面值
    • 形式:十进制、八进制或十六进制
    • 数据类型:(当前的类型要能容纳当前的数值)
      十进制字面值类型是int、long和 long long中尺寸的最小者
      八进制和十六进制字面值类型是int、unsigned int、long、unsigned long、long long 和unsigned long long 中的尺寸最小值
  • 浮点型字面值 :一个小数或以科学计数法表示的指数
  • 字符和字符串字面值
    • char型字面值:单引号是括起来的一个字符
    • 字符串型字面值:双引号括起来的零个或多个字符
      实际上由常量字符构成的数组;
      编译器会在每个字符串的结尾添加一个空字符 ‘\0’,那么,字符串字面值的实际长度比起内容多1
  • 布尔字面值 :false和true
  • 指针字面值 :nullptr

3.初始化

  • 相关了解
    变量: 提供一个具名的、可控程序操作的存储空间;每个变量都有其数据类型,数据类型决定变量所占内存空间的大小和布局方式、该空间能存储值的范围,以及变量能参与的运算
    对象: 一块能存储数据并具有某种类型的内存空间
    就地声明: 使用 = 加初始值;
    C++98中可以使用就地声明的方式对类中静态成员常量进行初始化,而且要保证该静态常量是整型或枚举类型

  • 始始化方式

    • 小括号初始化:
      int a(1);
      string b("hi");
      
    • 等号初始化
      double c = 1.2;
      string d = "hello";
      
    • POD对象列表初始化
      struct TestPod{
      	string data;
      	int id;
      };
      TestPod e = { "e0",0 };
      TestPod f[] = { {"d0'",0},{"d1",1} };
      cout << "e.data= " << e.data <<" e.id="<<e.id<< endl;
      for (TestPod e : f) {
      	cout << e.data << "\t" << e.id << endl;
      }
      
    • 构造函数初始化列表
      class TestClass{
      	int x;
      	int y;
      public:
      	TestClass():x(0),y(0){}
      	TestClass(int a,int b):x(a),y(b){}
      };
      
    • 花括号列表初始化
      TestClass g{1,2};//TestClass g(1,2);
      TestClass* h = new TestClass{3,4};
      
      int  i{2};
      int  i1 = {3};
      int* j = new int[3]{5,6,7};//一定要记得不是圆括号
      
      注: 花括号的方式,若存在类型转换则有丢失信息的风险,编译器会报错——更安全
      long double ld = 3.1415926536;
      int a1{ld},b1={ld};//报错
      int c1(ld),d1=ld;//正确
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明前大奏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值