c++primer笔记----表达式和语句

  • int *p = adecltype(*p)类型是int&decltype(&p)类型是int**

  • 数组隐式转换为指针

int ia[10];
int *ip = ia;  //ia转换为指向数组首地址的元素
  • sizeof (type) or sizeof expr

    1. 对char或者char的表达式 :大小是1
    2. 被引用对象:被引用对象所占空间大小
    3. 指针:指针本身大小
    4. 解引用指针:指向对象类型的大小,指针不需要有效
    5. 数组:整个数组所占空间大小
    6. string 或者 vector对象:元素个数
  • 整型提升:小整数(char bool short等)–>大整数(int)。有符号–>无符号

  • 显示转换:static_cast,不包含底层const;const_cast,只能改变运算对象的底层const。不建议使用显示转换

double slope = static_cast<double>(j)/i;

const char *pc;
char *p = const_cast<char*>(pc);  //但是通过p写值是未定义的
  • 下表列出 C++ 运算符的优先级和结合性。运算符从顶到底以降序列出。

  • trycatchthrowtry语句块内声明的变量在块外部无法访问,在catch子句内也无法访问

while(1){
    try{
        if(a != b)
            throw runtime_error("data must be same");
    } catch(runtime_error err){   //保证了程序出问题后,找到问题,仍能继续进行,不会中断
        cout << err.what();
        cout << "try again";
    } 
}
  • <stdexcept>中定义了几种常用的异常类。what返回的内容与异常类型有关。如果有初始化字符串,则返回该字符串。否则,由编译器决定
exception
runtime_error
range_error
overflow_error
underflow_error
logic_error
domain_error
invalid_argument
length_error
out_of_range
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值