zoukankan      html  css  js  c++  java
  • c++基础

    const expression常量表达式,指值不会改变,并且在编译过程中就能得到计算结果的表达式。

    复杂系统难以分辨一个初始值是否是常量表达式,因此提出constexptr以提示编译器,用来验证变量值是否是常量表达式。

    constexpr int myadd(int x, int y){         //constexpr函数应足够简单,以使得编译期就可以计算出结果
        return x+y;
    }
    int main(void){
        int x = 3, y = 4;
        constexpr int a = myadd(2,3);           //正确,因为函数实参是常量表达式
        //constexpr int a = myadd(x,y);         //错误,实参非常量无法在编译期间确定
        //constexpr int a = x+y;                //错误,x+y的值要在具体运行时才得到
        const int b = x + y;                    //正确,但不是常量表达式
        std::cout<<a<<" "<<b<<std::endl;

      int array[] = {1,2,3}; constexpr int soa = sizeof(array); //正确,sizeof()是c++操作符,可以在编译期给出结果 std::cout<<sizeof(array)<<" "<<soa<<std::endl;
    } 

    其他相关知识点:

    1.  sizeof()返回一个对象或类型所占的内存字节数

    2. array就是{1,2,3}所占内存地址的别名,(数组与指针的区别)

    参考:

    [1] c++ primer P58, P214

  • 相关阅读:
    Alpha、Beta、RC、GA版本的区别
    convertView
    Layouts
    Styles and Themes
    Android Studio
    Promise.race
    Base64
    NodeJS搭建HTTPS服务器
    CoreSeek
    Ping of Death
  • 原文地址:https://www.cnblogs.com/zhengmeisong/p/10499875.html
Copyright © 2011-2022 走看看