• 深谈auto变量


    1.c++中有一个关键字auto,c语言也有这么一个关键字,但是两者的意义大不相同。

    2.c++中用auto定义的变量自动匹配赋值号右边的值的类型,具有自动匹配类型的作用,而c语言中auto只是声明一个变量为自动类型,说明这个变量的代码块生存期和分配在栈上,并且不能用来定义变量。

    3.c++中auto可以起到泛型的作用,你不管给我传什么类型,我都可以识别,而且按类型使用这个变量。

    4.下面看cpp测试代码

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 /*
     6 自动变量:自动匹配类型
     7 auto  num = pc;通用传入接口
     8 decltype (num) anum;/通用备份接口
     9 */
    10 
    11 void main()
    12 {
    13 
    14     auto a = 10;//将a解析为整数变量
    15     auto b = 10.1;//将b解析为浮点数变量
    16 
    17     int array[10];
    18     int i = 0;
    19     for (auto arr : array)//增强for循环
    20     {
    21         arr = i++;
    22         cout << arr << endl;
    23     }
    24 
    25     cout << "a = " << a<<endl;//a = 10
    26     cout << "b = " << b<<endl;//b = 10.1
    27 
    28     double c = 11.9;
    29     double *pc = &c;
    30     auto  num = pc;//自动让num匹配pc类型,
    31     cout << typeid(num).name() << endl;//typeid为一个结构体,这个结构体关于num,然后求其信息name,结果为double *
    32     cout << typeid(c).name() << endl;//使用typeid(变量名).name()可以获取变量的类型信息
    33     cout << typeid(pc).name() << endl;
    34     //typeid(num).name() d; 这种做法不允许,应使用下面的做法
    35     decltype (num) anum;//获取变量num的类型然后用这种类型定义一个变量anum
    36     anum = &b;
    37 
    38     cout << *anum << endl;
    39     system("pause");
    40 
    41 }

    5.再来看看运行结果

    需要程序源码的可以加我微信x241602私聊。
  • 相关阅读:
    关于手机号码输入验证
    关于table参数的一些问题
    关于video.js
    Yeoman官方教程:用Yeoman和AngularJS做Web应用
    IE11中的F12无效的问题
    当网站中嵌入视频中,总是弹出迅雷的下载框,或者视频无法播放的情况
    JS window.onload 和模拟document.ready.
    VB6 Access 事务(Transaction)
    ASP 读写文件FSO,adodb.stream
    【转】Win10/UWP新特性系列—Web
  • 原文地址:https://www.cnblogs.com/huipengbo/p/6955025.html
Copyright © 2020-2023  润新知