1-Changes

HelloWorld

1
2
3
4
5
6
7
//Hello World    
#include<iostream>
int main(int argc, char *argv[])
{
std::cout<<” Hello World”<<std::endl;
return 0;
}
  • //双斜杠表示单行注释;行注释/ 代码块/
  • 在C++中,头文件的.h可以省略。
  • Cout表示输出流
  • std表示命名空间,用来处理不同代码段之间的变量名称冲突问题。不同命名空间中两个变量名即使相同编译器也会识别出它们是不一样的。
  • endl也是定义在命名空间的,它表示回车换行,通过输出\n的字符串来换行,效果同endl。

    变量

  • C++中可以在任何位置声明变量
  • 使用变量前需赋初始值

数组

C提供了一种C风格的数组:

  • 定义一个含有十个int元素的数组:
    int b[10]={200,3,3,3}; //数组中前四个元素被初始化,后面未初始化的元素自动初始化为0

C语言的这种数组是类型不安全的,我们在使用的时候经常容易下标越界。C++也提供了C++风格一种数组,我们应该这样来定义:

1
2
#include<vector>
std::vector<int> C;

添加元素
1
2
3
C.push_back(10);
C.push_back(40);
C.push_back(33);

访问
1
std::cout<<C[1]

遍历数组
1
2
3
for(int i=0; i<c.size();i++)
{ std::cout<<C[i]<<endl;
}

字符串

C风格:

1
2
char str[128]=”Hello world”; //c风格的字符串结尾总是有一个结束标志\0
char *str=”Hello world”;

C++ String 类型:
1
2
#include<string>
std::string str=”Hello world”;

字符串连接
1
str+=”fgfdgdsggf”;

字符串比较
1
Str==”fgfdgdsggf”;

函数

  • 1.函数重载
    多个函数具有相同的函数名,这些函数中只是参数个数和类型不同,它们就构成了重载。
    1
    2
    3
    int max(int a, int b);
    double max(double a, double b);
    /*如果我们通过max(20,40);来调用的话,它会根据参数的个数和类型来调用第一个函数。我们也可以看通过max(20.1,40.0);来调用第二个函数。*/
  • 2.内联函数
    频繁的函数调用是有一定代价的,我们可以将函数声明为内联函数。在声明为内联函数之后,编译器会将调用内联函数的地方展开,将内联函数的代码嵌入到调用内联函数的地方。

内联函数的使用方法,在函数声明的前面加上inline。如:

1
2
3
inline void func(){
int i=0; i++;
}

(以非调用的方式将函数嵌入)

  • 3.函数调用
    在C中,我们通过malloc来分配空间,用free来释放空间
    1
    2
    3
    4
    5
    6
    int *p=(int *)malloc(sizeof(int)*100); //申请一片可以存储一百个int变量的值的内存
    if(!p){ //判断空间分配是否成功,分配失败就退出
    return 0;
    }
    free (p); //释放内存
    p=NULL; //当释放完这一片内存之后,p就已经不应该再指向这一片内存了。(否则成为野指针)
    在C++中,我们使用new来分配空间,用delete来释放空间。
    1
    2
    3
    4
    5
    6
    int *p=new int[100]; //new会自动计算需要的长度,分配一连片的内存
    if(!p){ //判断空间分配是否成功,分配失败就退出
    return 0;
    }
    delete []p; //上面是数组的分配空间,所以释放的时候需要在变量名前加[]
    p=NULL;

如果只是普通的变量申请和释放,只需要如此:

1
2
int *p=new int;
delete p; //不需要[],对应的申请内存的方式一定要匹配。

注意:使用new申请的内存在必须使用delete才可以释放,而释放的形式也必须匹配。

引用

引用是C++对C的重要扩充,它的作用是为变量起一个别名。假如一个变量A,我们想给它起一个别名B,我们可以这样定义:

1
2
int A=5;
int &B=A;

*注意:引用必须在定义的时候就初始化,一旦初始化之后就不可以更改。

打赏

请我喝杯咖啡吧~

支付宝
微信