zoukankan      html  css  js  c++  java
  • C++概述(一)

    1.C到C++类型增强

    1.1 类型检查更严格

    对于C

    #include<stdio.h>
    
    int main(){
        int const a = 10; //可以不赋初值,随机,编译通过 
        int *p = &a;    //&const int * --> int
        *p = 100;
        printf("%d", a);//此时a会改为100  明修栈道,暗度陈仓
        return 0;
    }
    //const int == int const
    //const int *p   不能改地址但能改内容
    //const int const *p 都不能改 

    对于C++

    #include<iostream>
    using namespace std;
    
    int main(){
        const int a = 100;    //不允许不赋初值
        //int * p = &a; -->不允许
        //C++ 不喜欢强制类型转换 
        return 0;
    }

    1.2 布尔类型 

    C的逻辑真假是用 0 和 非0 来表示的,C++中有具体类型bool

    bool flag = 100; // 非零等同于true 

    实际上是用枚举类型enum实现的

    enum BOOL{
        False, True
    };
    BOOL flag = False;
    printf("%d", sizeof(bool));   // 1B

    1.3 真正的枚举

    对于C

    enum DAY{
        Mon = 1, Tue, Men
    }; 
    enum DAY today;
    //today = Men;    //输出3
    today = 100; //输出100,可以 

    对于C++

    DAY today = 100;  //不允许
    enum{
        Mon = 1, Tue, Men
    }; //等价于宏定义,能用枚举或const 尽量不用宏

    1.4 表达式

    对于C

    int a, b = 10;
    a = b = 100; //100赋值给b,b=100表达式的值赋值给a
    (a = b) = 100; //不可以 表达式不可以被赋值 

    对于C++

    int a, b = 10;
    (a = b) = 100;    //形式上表达式可以被赋值 
    //输出a = 100, b = 10 
      人生不如意的时候,是上帝给的长假,这个时候应该好好享受假期。
      突然有一天假期结束,时来运转,人生才是真正开始了。
  • 相关阅读:
    MapBox TileMill
    优秀电影
    Mapnik 编译安装过程
    Debian 入门安装与配置2
    学习opengl十大网站(转载)
    PostgresSQL 学习资料记录处
    c++模板编程-异质链表
    Linux-统一事件源
    三组I/O复用模型的比较
    ZigZag-LeetCode
  • 原文地址:https://www.cnblogs.com/astonc/p/14268127.html
Copyright © 2011-2022 走看看