zoukankan      html  css  js  c++  java
  • c++11新特性之auto和decltype 类型

    c++11引入了类型推断定义符 auto和decltype

    auto用法如下

    auto 变量名 1 = 表达式1,变量名2 = 表达式2,.......;

    编译器会根据表达式结果推断出定义的变量的类型,并用表达式值进行初始化

    auto忽略表达式的顶层const 和引用的const而指针底层const会保留

    先看看前置知识吧

    https://www.cnblogs.com/mch5201314/p/11566712.html

    https://www.cnblogs.com/mch5201314/p/11485800.html

    如果只想定义变量而不让表达式初始化,就用deltype

    用法decltype(表达式) 变量 = 表达式

    下面弄个例子看看

    #include<iostream>
    using namespace std;
    int n;
    double f(int n)
    {
    	int s = 0;
    	for(int i =  1;i <= n;i++)
    	s += i;
    	return s;
    }
    
    int main()
    {
    	int i = 10,j,*p = &i,&r = i;
    	
    	const int  ic = i,&cj = ic;
    	decltype(f(5)) s;//double s
    	decltype(i + 3.4) x = 9;//double x;
    	decltype(ic + 3) y1;//int  y1
    	decltype(ic) y2 = 4;//const int y2 = 4;
    	//decltype(ic) y3;错误,const int y3  
    	decltype(p) p1;//int *p1;
    	decltype((i)) ri = j;//int &ri = j;
    	decltype(*p) rp = i;//int &rp = i;
    	auto x1 = ic;//int x1 = ic;
    	decltype(cj) x2 = ic;//const int &x2 =  ic;
    	return 0;
    }
    

      

  • 相关阅读:
    修改spring boot 启动logo
    查看jvm常用命令
    intellij IDEA破解
    hdu 新生晚会
    How many prime numbers(素数)
    2077 汉诺塔IV
    Factorial
    双人黑白块
    EasyX
    七夕情人节
  • 原文地址:https://www.cnblogs.com/mch5201314/p/11685385.html
Copyright © 2011-2022 走看看