C++基础技能(一)

数据类型

  1. 整数型

short:16位 (2字节)
int:32位 (4字节)
long:一般占用4字节
longlong:一般占用8个字节

  1. 字符型

char:8位(1个字节)

  1. 浮点型

float类型通常占用4个字节,有效位数为6位
double类型占用的空间是float类型两倍,即8个字节,有效位数为15位
long double类型一般占用16个字节的空间

如果是无符号版本,那么一个8位的内存块可以一一对应到0~255之间的整数;
如果是有符号版本,那么就会考虑负数,这个8位的内存块可以表示一128~127之间的整数。

32 位 的 i n t 类 型 , 可 以 表 示 2 32 = 42949672962 个 不 同 的 整 数 32 位的int类型,可以表示2^{32}=42949672962 个不同的整数 32int232=42949672962

运算符

C++中共包含6种按位运算符:
按位与运算符 &
按位或运算符 |
异或运算符 ^(相同为0,不同为1)
按位取反运算符 ~
左移运算符 <<
右移运算符 >>
Tips:按 位运算符 只能对字符整型以及数值整型数据类型的常量或变量使用,不能对浮点类型数据进行计算。

EG: cout << "A | B = " << (A | B) << endl;(注意阴影部分)
1
移位优先级高于异或
在这里插入图片描述

#include <iostream>
using namespace std;

int main() {
    int A = 60; // 0011 1100
    int B = 13; // 0000 1101
    
    cout << (A & B) << endl;
    cout << (A | B) << endl;
    cout << (A ^ B) << endl;
    cout << (~A) << endl;
    
    cout << (A << 1) << endl; // 左移1位
    cout << (A >> 2) << endl; // 右移2位
    
    return 0;
}

关系运算符

Tips: 判断两个数是否相等,用的是 ===,因为=是用于赋值操作的。

  1. 浮点数 一般不会用 == 或者 != 来判断,因为可能产生表示误差
  2. 比较两个 浮点数 是否相等,需要看两个数的差值是否小于一定的精度,比如:
  • 对于浮点数a和b,如果(a - b) < 1e-6 如果值为真,就判断两个浮点数相等

优先级

3

题型4

Switch语句

23
语法解析

  1. switch 后面的变量名整型变量(比如int或者char),或者为整型的表达式
  2. 在一个switch中可以有任意数量的case语句。
  3. 每个case后跟一个变量可能的值和一个冒号。这个变量可能的值必须与switch中的变量具有相同的数据类型,而且是一个常量,比如1,2,3或者‘A’,‘B’,‘C’或者‘1’,‘2’,‘3’等等。
  4. 当switch后面的变量等于case后的常量时,case后跟的所有语句将被执行,直到遇到break语句为止。

break(难点):

当遇到 break 语句时,switch 终止,控制流将跳转到整个 switch 语句后的下一行。
case后可以没有break, 如果某个case后没有break语句,程序就会接着往下执行

  • 举个例子,假设 执行语句1之后没有 break,那么如果变量名变量可能的情况1时,程序会执行执行语句1,然后接着执行
    执行语句2,直到碰到break。

default: 一个switch语句可以有一个可选的default情况,出现在switch的结尾。default情况可用于上面所有case都不为真时执行。

char opt;
cin >> opt;

switch (opt) {
    // 如果opt=='6',执行完两句cout后,遇见break,就会跳出整个switch
    case '6': 
        cout << "主人你好!" << endl;
        cout << "今天你想吃什么" << endl;
        break;
    case '1': 
        cout << "小一你好!" << endl;
        cout << "今天天气怎么样?" << endl;
        break;
    case '2': 
        cout << "你有什么需要帮助的吗?" << endl; 
        break;
    // 如果opt=='4',由于'4'的 case 后面没有 break
    // 所以会往下执行'5'的 case 后面的语句,直到遇到 break
    case '4': case '5':
        cout << "我不想跟你说话" << endl;
        break;
    default: 
        cout << "我不太清楚你是谁..." << endl;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值