unit01_C++语言背景介绍 、 第一个C++程序 、 名字空间 、 结构、联合和枚举 、 布尔型与操作符别名

... 这里省略若干c++历史介绍的内容

二、 第一个c++ 程序  

       1. 编译方式
           gcc xx.cpp -lstdc++
           g++ xx.cpp
       2. 文件扩展名
           1) .cpp // 最常用
           2) .cc
             3) .c
             4) .cxx  

    3. 头文件
            #include <iostream>
    4. 输入和输出
            用 cin 表示标准输入, 用 cout 表示标准输出
            // printf("hello world!");
            cout << "hello world!" << endl;
            "<<": 出入运算符
            int a = 10;
            double d = 3.14;
            char* str = "abcdef";
            // printf("%d, %lf, %s\n", a, d, str);
            cout << a << ',' << d << ',' << str << endl;
            ">>": 提取运算符
            int number;
            int number2;
            // scanf("%d%d", &numbr, &number2);
            cin >> number >> number
    5. "std:: " 标准名字空间

三、名字空间  

    1. 名字空间作用
            1) 避免名字冲突
            2) 划分逻辑作用域
    2. 定义
            namespace 名字空间名{
                    int x;
                    void foo(void){}
                    struct Student{};
                    namspace ns2{}
            }
            eg:
            namespace ns1{
                    char name[20] = "limu";
                    namespace ns2{
                            char name[20] = "limu";
                            namespace ns3{
                                    char name[20] = "limu";
                            }
                    }
            }
            ns1::name;
            ns1::ns2::name;
            ns1::ns2::ns3::name;
    3. 名字空间的使用
            1) 通过作用域限定符"::"
                    名字空间名::要访问的成员
            2) 名字空间指令
                    using namespace 名字空间名;
                    在该条指令以后的代码中,指定名字空间中的成员都可以见,访问其中的成员可以省略作用域的限定.
                    eg:
                    namespace ns1{
                            char name[20] = "limu";
                    }
                    int main(void){
                            strcpy(name, "limu"); // error
                            using namespace ns1;
                            strcpy(name, "lilin"); // ok
                    }
            3) 名字空间声明
                    using 名字空间名::名字空间成员;
                    将名字空间特定的成员引入当前作用域,在该作用域中访问这个成员如同访问自己的成员一样,可以省略作用域限定.
                    eg:
                    namespace ns1{
                            int x;
                            void foo(void){}
                    }
                    int main(void){
                            using ns1::x;
                            x = 10; // ok
                            foo(); // error
                    }
    4. 无名名字空间
            不属于任何名字空间的标识符,将会被编译器自动放入无名的名字空间中。
            使用无名无名空间的成员"::标识符"

四、 c++ 的结构体、联合体和枚举  

    1. c++ 结构体
            1) 定义结构体时, 可以省略 struct 关键字
            eg:
            struct Student{
                    char name[20];
                    int age;
            }
            int main(void){
                    // struct Student s = {"limu", 18}; // c风格的写法
                    Student s = {"limu", 18}; // c++ 风格的写法
            }
            2) c++结构体里面可以直接定义函数,称为成员函数,在成员函数中可以直接访问成员变量;
            struct Student{// 声明 Student 结构体类型
                    char name[20]; // 成员变量
                    int age; // 成员变量
                    void who(void){// 成员函数
                            cout << name << ',' << age << endl;
                    }
            };
            int main(){
                    Student s={"limu", 18}; // c++ 风格写法
                    s.age++;
                    s.who();
            }
    2. c++ 联合体(了解)
            1) 定义联合体变量可以省略 union 关键字
            2) 支持匿名联合
    3. c++ 枚举
            1) enum 关键字可以省略
            2) c++ 枚举是一种独立的数据类型,而 c 中的枚举本质是整形数。
            enum COLOR{RED, GREEN, BLUE};
            COLOR C; // RED, GREEN, BLUE
            c = RED; // C: OK C++:OK
            c = 0; // c: ok c++: error

五、 c++ 字符串  

    1. c 中表示字符串
            1) 双引号: "hello world";
            2) 字符指针: char* p = 字符串;
            3) 字符数组: char arr[] = "hello world";

            char* p = "hello world";
            strcpy(p, "abcdef"); // error
            p = "abcdef"; // ok
            cout << *(p++) << endl; // B
    2. c++ 兼容c 字符串的同时,增加了 string 类型,专门表示字符串;
    eg:
    string s = "hello";
    s = "world"; // 拷贝
    cout << s << endl; // world
    s += "!"; // 字符串连接
    cout << s << endl; // world!
    if(s >= "hello"){}

六、 c++ 布尔类型  

    1. bool 类型是 c++ 中的基本类型, 表示逻辑值: true/false
    2. bool 内存占1个字节: 1表示 true, 0 表示false
    3. bool 类型变量可以接收任意类型变量或表达式,其中非 0 为 true, 0 为 false

七、 c++ 字符串形式的运算符(了解)  

    &&
    ||
    ^ --xor
    { --<%
    } --%>
    ! not
    != -- not_eq
    ...
    练习: string 字符串的使用
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡德咏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值