1.3 C++ 关键字升级

        实用性增强:

遍历数组的方式:// freach方式遍历

 int array[5] = {1, 2, 5, 6, 8};
    for (int i : array)
    {
        cout << i;
    }
    cout << endl;

    char src[] = "hello world";
    for (char temp : src)
    {
        if (temp == '\0')
        {
            break;
        }
        cout << temp << endl;
    }

关键字的升级:

register          vs             volatile

C:仅能修饰局部变量,不能修饰全局变量和函数;修饰的变量不能通过“&”取地址

C++:当对register变量取地址时,会将该变量重新保存到内存中

寄存器变量,提高运行效率,省去了cpu从内存抓取数据的情况

尽可能的将变量保存在寄存器,而不是一定保存在寄存器

CPU的三大组成部分:运算器  存储器(寄存器)和控制器

                                                volatile

防止编译器优化(将变量优化到寄存器中(寄存器存在边际效应))

auto

C语言中:auto int num=5;用处很少

C++:类型推导:根据赋值类型来推导

 应用于迭代器时,可以更简洁

typedef

与宏替换进行比较(#define)

语法作用:给数据类型重命名

工程应用:更好的可读性   更好的移植性:

函数命名规则:解决函数形参的可读性(实现自注释性)

如何定义函数指针  &  typedef  函数指针  ???

#include <iostream>
typedef int (*p)(int ,int);//C语言重定义函数指针的方法
using namespace std;
int sum(int a,int b)
{
    int sum;
    sum=a+b;
    return sum;
}
#if 0
int main(int argc,char**argv)
{
    p p_sum;//typedef  定义一个函数指针
    p_sum=sum;
    int res=p_sum(7,8);
    cout<<res<<endl;
    return 0;
}
#endif
using p_func=int (*)(int a,int b);//C++重定义函数指针的方法
using u_int=unsigned int;//C++重定义数据类型的方法
int main()
{
    p_func p2;
    p2=sum;
    cout <<p2(3,4)<<endl;
    
    u_int t=33;
    cout <<t<<endl;

    return 0;
}

const关键字:

C语言中将一个变量变为只读变量:

const只能修饰变量名num;而不修饰所指向的空间———num指向的空间可变,只是不能通过变量名来修改

工程作用:修饰函数形参,保证实参在函数执行过程中不能被修改

C++中将一个变量修饰成常量

constexpr

C++中的constexpr替代c中的#define

bool类型

bool  variable =true     【只有true和false两种】

三目运算符

c语言,三目运算符的结果只能作右值

c++ 中~~~可以做左值,可以被赋值

while(【支持逗号表达式】)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值