C++学习:第三章C++语言基础 - (一)C++基础、C++风格字符串、名称空间、引用

1. C++的LInux编译

在Linux中编译C++可以用g++或者c++来实现,逻辑格式与C的一样

2. C++中的头文件变化

C++标准头文件,一律不带.h,为了区分开C

C++中包含了所有标准C头文件,并且重新编译,重新命名:去掉“.h",并且在文件明前添加"c",例如<stdio.h> 变为 <cstdio>

3. 命名空间

为了避免名字冲突,C++引入了命名空间,标准库中的命名空间为std,using namespace std;

C++ 输入输出 cin\cout #include <iostream>

#include <iostream>
#include <string>

using namespace std;

int main(){

    cout << "sdasdasda" << endl;
    string name;
    int age;

    cin >> name >> age ;
    cout << name << age;

    return 0;
}

如果实时使用该命名空间的一部分东西,其中 :: 称为预操作符

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::string;
using std::endl;

int main(){

    cout << "sdasdasda" << endl;
    string name;
    int age;

    cin >> name >> age ;
    cout << name << age;

    return 0;
}

4. 自己写命名空间

#include <iostream>
#include <string>

using namespace std;

namespace w1{
    string name = "111";
}

namespace w2{
    string name = "222";
}

int main(){

    cout << w1::name << endl << w2::name;

    getchar();
    return 0;
}

5. C++ 与标准C在字符串上的差异

字符串

比较项

C++

C

风格

C++

C

创建

string str;

char str[100];

大小

1G

100字节

赋值

s1 = s2;

strcpy(s1, s2);

连接

str = s1 + s2;

strcat(s1, s2);

比较

s1 == s2;>= <= …

strcmp(s1, s2)

长度

str.size();/str.length()

strlen(str);

查找

str.find();

strchr(s1, s2)/strstr(s1, s2);

数组式访问

str[1]

str[1]

互转

const char* str.c_str();

将C++ 风格字符串转为 C 风格字符串

如果C 与 C++ 风格的字符串混合处理,会自动转为C++风格的字符串处理。

6. C++中的严格类型检查

C++中有严格的类型检查,这里一enum枚举举例

enum C++ 中认为 enum 是一个类型,不同类型之间不能转换,除非强转。

#include <iostream>
#include <string>

enum Course{UNIX, C, CPP, VC};
enum Color {BLACK, RED, GREEN, YELLOW, BLUE, WHITE};

int main(){

    Course c;
    c = CPP;
    int n = CPP;
    std::cout << c << "  " << n << std::endl;

    //c = n;//这样写是错误的,因为类型不同(int Course)

    Color clr = BLUE;
    //clr = VC;//这样写是错误的,因为类型不同(Color Course)
    clr = (Color)VC;//强转是可以的

    getchar();
    return 0;
}

7. bool类型

bool C++专门增加的类型 true\false

8. 引用

reference引用&:C++新增,给变量起别名。其本质就是指针

#include <iostream>
#include <string>

using namespace std;
int main(){

    double d = 123.45;
    double& e = d;//引用,引用必须初始化,且对象必须是名字
    cout << e << "  "  << &e << "  " << &d << endl;//这里会显示他们是一个地址
    double f = 000.222;
    e = f;//这里相当于d = f;
    cout << e << "   " << f << endl;

    const double e2 = 22.333;//只有添加const后才可以引用常量或者与常量计算
    cout << e2 << endl;
    const double e3 = 444 + d;
    cout << e3 << endl;

    getchar();
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值