C++的基础学习

C++的基础学习,第1张

DAY_1
  • 类是一种规范,它描述新型的数据格式

  • 对象是根据这种规范所构造的特定数据结构

  • C++ 通常使用自下向上编程方法,与 C 自顶向下的编程方法相反

  • 泛型编程可以认为是一种不指定数据类型的实现方法,使用泛型编程的代码一般被称为模板,由模板生成实际代码的过程称为模板的具体实现。

  • C++ 最新的标准是 ISO/IEC 14882:2020,于2020年发布,该标准引入了许多新特性,如协程,模块等,可以查看c语言最新标准c22,C++20标准(c++标准手册) 官方最新版PDF_柳编的博客-CSDN博客

  • C++ 的输入与输出

    /*
     * 不同于C语言的stdio.h库,C++使用iostream库作为交互库
     * C++使用函数 cout << "string" 进行内容输出
     * cout << endl 可以建立新行,同样的,也可以使用转义符'\n'
     * 当然C++不仅能输出字符串,也能够输出数值类型
     */
    
    #include 
    using namespace std;
    
    int main() {
        
    //    //你可以使用cout输出字符串,可以连续输出
    //    cout << "因为还跟着输出了endl,所以会新起一行!" << endl;
    //    cout << "好帅啊!" << endl;
    //    //当然也可以单独输出
    //    cout << "你真的好帅啊!";
    //    cout << endl;
    //    cout << "你真的好帅啊12!";
    //    //你也可以使用C语言中的'\n'
    //    cout << "\n";
    //    cout << "你真的好帅啊13!";
    
    //    //同样的,你可以用来输出变量,乃至于后面,你可以输出自定义数据类型
    //    int carrots = 25;
    //    cout << carrots << endl;
    //    cout << "carrots." << endl;
    //    cout << "Now I have " << carrots << " carrots" << endl;
    
    //    //现在我们来看看cin的用法,与cout相反,我们使用 cin >> 变量 作为输入
    //    int carrots;
    //    cout << "Please input number of carrots:";
    //    cin >> carrots;
    //    cout << "I have " << carrots << " carrots.";
        
        return 0;
    }
    
  • C++ 的函数使用

    /*
     * C++中使用函数的方法与C中类似
     * 你可以使用标准库中的函数,当然你也可以使用自己的函数
     */
    #include 
    #include 
    using namespace std;
    
    // Function Definition
    void simon(int);
    int calculate(int);
    
    int main(){
    
    //    //求平方根函数
    //    double area;
    //    cout << "Please input a number:";
    //    cin >> area;
    //    double side;
    //    side = sqrt(area);
    //    cout << "side is " << side << endl;
    
    //    //使用自己定义的函数,在main前声明,在main后实现,在main中调用
    //    simon(3);
    //
    //    int result;
    //    result = calculate(5);
    //    cout << result;
    
        return 0;
    }
    
    void simon(int n){
        cout << "This function printf " << n << endl;
    }
    
    int calculate(int n){
        int result;
        result = n*n;
        return result;
    }
    
  • C++ 中的变量命名一般使用下划线或者小驼峰,如name_of_student,或者nameOfStudent,并且C++ 的变量名不区分大小写,但是请不要这样使用,易读性和统一是命名变量唯二的标准

  • 你也可以使用前缀n,c,str,b,p 等来说明变量的类型,增强可读性

  • C++ 中的数值类型

    //
    // C++中的数值类型
    // C++对比C语言,其变量的初始化多出了一种方式,int value(32);
    // 更为常用的,C++标准引入了新的变量初始化方式,即使用大括号
    // int value = {num}; 将value初始化值设为num,若不写num而保留空括号,则默认初始化为0
    //
    //
    
    #include 
    #include 
    using namespace std;
    
    int main(){
    //    int n_int = INT_MAX;
    //    short n_short = SHRT_MAX;
    //    long n_long = LONG_MAX;
    //    long long n_llong = LONG_LONG_MAX;
    //
    //    cout << "int is " << sizeof (int ) << " bytes" << endl;
    //    cout << "short is " << sizeof (short ) << " bytes" << endl;
    //    cout << "long is " << sizeof (long ) << " bytes" << endl;
    //    cout << "long long is " << sizeof (long long) << " bytes" << endl;
    //
    //    cout << "Maxinum values:" << endl;
    //    cout << "int: " << n_int << endl;
    //    cout << "short: " << n_short << endl;
    //    cout << "long: " << n_long << endl;
    //    cout << "long long: " << n_llong << endl;
    //
    //    cout << "Minium int values = " << INT_MIN << endl;
    //    cout << "Bits per byte = " << CHAR_BIT << endl;
    
    //    int value(32);
    //    cout << value << endl;
    
    //    //char 类型的有无符号根据实现定义
    //    char ch;
    //    unsigned char u_ch;
    //    signed char s_ch;
    //    char16_t ch1 = u'q';
    //    char32_t ch2 = U'\U0000222B';
    //
    //    cout << UCHAR_MAX << endl;
    //    cout << SCHAR_MAX << endl;
    //    cout << ch1 << endl;
    //    cout << ch2 << endl;
    
    //    //浮点数分为32位float,64位double,常用的128位long double
    //    //他们的默认小数点保留位可以在头文件cfloat中查看
    //    float fnum1 = 1.23e3;
    //    double fnum2 = 1.25e10;
    //    long double fnum3 = 1.26e18;
    //
    //    //浮点常量的定义,默认定义为double
    //    float a = 1.25f; //使用后缀f来定义为float类型
    //    long double b = 1.2l; //使用后缀l来定义long double类型
    
    //    //运算符的重载
    //    cout << 9/5 << endl;
    //    cout << 9.0f/5.0f << endl;
    //    cout << 9l/5l << endl;
    //    cout << 9.0/5.0 << endl;
    
    
        return 0;
    }
    
  • cout函数输出同一个数值的不同数据形式

    #include 
    using namespace std;
    
    int main() {
        // cout输出同一个数的不同格式
        cout << hex << 42 << endl;
        cout << oct << 42 << endl;
        cout << dec << 42 << endl;
        return 0;
    }
    
  • cout函数的put方法输出字符

    #include 
    using namespace std;
    
    int main() {
        // cout的put方法
        char ch = 'K';
        cout.put(ch);
        return 0;
    }
    
  • char的有无符号定义

    #include 
    #include 
    using namespace std;
    
    int main(){
        //char 类型的有无符号根据实现定义
        char ch;
        unsigned char u_ch;
        signed char s_ch;
        char16_t ch1 = u'q';
        char32_t ch2 = U'\U0000222B';
    
        cout << UCHAR_MAX << endl;
        cout << SCHAR_MAX << endl;
        cout << ch1 << endl;
        cout << ch2 << endl;
        return 0;
    }
    
  • C++ 中的类型转换

    #include 
    #include 
    using namespace std;
    
    int main(){
        float fnum = 53.2;
        //类型强制转换
        int convert = static_cast <int> (fnum);
        cout << convert << endl;
        //使用强转显示ASCII值
        int decchac = static_cast <int> ('O');
        cout << decchac << endl;
        
        return 0;
    }
    
DAY_2
  • C++ 中的其他类型

    //
    // 除去数值类型以外的其他类型数据
    //
    
    #include 
    #include 
    using namespace std;
    
    int main(){
    //    // 数组的定义
    //    int array[12];  //定义一个int型数组,数组名array,数组元素数量12
    //    // 数组的初始化
    //    int array_init[3] = {1, 2, 3};
    //    int array_zero[100] = {0};
    //    int array_nofull[5] = {1, 2};
    //    int array_nonum[] = {1, 2, 3, 4};
    //    int array_nothing[] = {};
    //
    //    char tlifs[4] = {'h', 'i', 112, '//    //char slifs[4] = {'h', 'i', 1122211, '//    char str[] = {'h', 'e', 'l', 'l', 'o', '//'};'};    //Error, 1122211越界'};
    //    cout << strlen(str) << endl;
    //
    //    // cin的按行输入
    //    char name[20] = {};
    //    // 第一种方式
    //    cout << "Please input your name:";
    //    cin.getline(name, 20);
    //    cout << name << endl;
    //    // 第二种方式
    //    cout << "Please input your name:";
    //    cin.get(name, 20).get();
    //    cout << name << endl;
    //    // C++中的string类
    //    string str1;
    //    string str2 = "Hello world!";
    
    //
    //    cout << "Please input your name:";
    //    cout << str2[2] << endl;
    //    cout << str1 << endl;
    //
    //    cin >> str1;
    //    string str3 = str1 + str2;
    //    cout << str3 << endl;
    //
    //    // 其他类型的字符串字面值
    //    wchar_t title[] = L"Chief";
    //    char16_t name[] = u"Snake";
    //    char32_t car[] = U"Tesla";
    //
    //    // C++的原始字符串
    //    // 使用R来标识,不代表转义字符等,而直接就是字符串
    //    cout << R"(JIm "King" Tutt use "\n" instead of me)" << endl;
    //    // 使用+*来代表字符串的开头和结尾,以使用()
    //    cout << R"+*("(Who wouldn't?)" , she whispered.)+*" << endl;
    //    // 结构体
    //        string name;
    //        int age{};
    
    //        float grade{};
    //    struct student{
    //    };
    //
    //    student me;
    //    me.age = 17;
    //    me.name = "KillerDJ";
    //    me.grade = 98.5;
    //
    //    cout << me.grade << me.name << me.age << endl;
    //
    //    // 结构体的初始化
    //        "赵子龙",
    //        17,
    //        95.5
    //    student you = {
    //    };
    //
    //    student him = {};   // 全部置0
    //    // 结构体成员赋值在C++中是允许的
    //    him = you;
    //    cout << him.age << endl;
    //
    //    // 结构数组的定义
    //            {"赵丽龙", 15, 89},
    //            {"彼得", 14, 66},
    //    };
    //    student others[100] = {
    //
    //    cout << others[0].age << endl;
    //    cout << others[2].age << endl;
    //
    //    // 结构中的位字段
    //        unsigned int SN : 4;
    //        unsigned int    : 4;
    //        bool goodIn : 1;
    //    struct reg{
    //    };
    //
    //    reg stm32 = {14, true};
    //    cout << stm32.goodIn << endl;
    //    // 联合
    //    // 联合可以定义多种不同的数据类型,但是只能存储其中一种
    //    //多用于单片机应用中
    
    //        unsigned int itype;
    //        float ftype;
    //        char ctype;
    //    union type{
    //    };
    //
    //    type one{};
    //    one.itype = 100;
    //    one.ftype = 120.5;
    //    one.ctype = 'H';
    //
    //    cout << one.itype << endl;
    //    cout << one.ftype << endl;
    //    cout << one.ctype << endl;
    //    // 枚举
    //    // 可以不定义变量名,只是用enum,省略week
    //        Mond,
    
    //        Tues,
    //        Wenne,
    //    enum week{
    //        Thurs,
    //        Fri,
    //        Satur,
    //        Sun
    //    };
    //
    //    week day;
    //    day = Mond;
    //    cout << day << endl;
    //    // 因为Jan不是枚举中的值,所以不能定义
    //    //day = Jan;
    //    day = Satur;
    //    cout << day << endl;
    return
    0
    ;
    
        } 
    
    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/722965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存