美文网首页
C语言到C++语言

C语言到C++语言

作者: 哇丶九夏 | 来源:发表于2018-10-26 00:32 被阅读0次

C语言与C++的关系

1. C语言

  • 1972年,贝尔实验室.
  • Dennis MacAlistair Ritchie(丹尼斯·麦卡利斯泰尔·里奇) 和 Ken Thompson(肯•汤普森)
  • 为计算机专业人员设计,大多数系统软件和许多应用软件都是C语言编写的.
  • 随着软件规模的增大,用C语言闲的有些乏力.

2. C++语言

  • 20世纪80年代初,贝尔实验室.
  • Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)及其同事.
  • 在C语言的基础上开发了C++语言.
  • C++兼容与C, 保留了C语言的优点, 增加了面向对象的机制.

3. C/C++的就业方向

  • 操作系统
  • 驱动程序
  • 搜索引擎
  • 苹果产品
  • 大型网络游戏
  • 通信行业后台
  • 其他编程语言

C语言与C++语言一些区别

1. 新增数据类型:bool类型

  • C/C++中1表示真 0表示假
  • C++中增加了逻辑型数据类型:bool 一个人的名字。
  • bool型常量只有2个 false true
  • 逻辑型数据类型使得程序更加直观。
  • 编译系统处理逻辑型数据类型,仍然将false处理为0,true处理为1
  • 在实际中,非0为真,0为假
  • 逻辑型数据可以与数值型数据进行运算。

2.结构体名的运用

  • 结构体类型定义变量时, C不可以省略struct, C++可以省略.

3.强制类型转换

  • (数据类型)(表达式)---------------C风格
  • 数据类型(表达式)-----------------C++风格

4.新增动态内存分配的运算符

  • 动态内存分配用 new, 返回内存首地址.
int *p1, *p2, *p3;
p1 = new int;       //为p1分配一个int内存
p2 = new int[5];    //为p2分配一个int数组,数组有5个元素
p3 = new int(5);    //为p3分配一个int内存,初始化为5
  • 释放空间用 delete
delete p1;    //释放p1指向的内存
delete []p2;  //释放p2指向数组内存
delete p3;    //释放p1指向的内存

5.新增作用域运算符 ::

  • 案例1:
#include <iostream>
using namespace std;
int a = 5;
int main()
{
    int a = 6;
    cout << a << endl;     //局部a变量
    cout << ::a << endl;   //全局a变量
    return 0;
}
  • 案例2:
#include <iostream>
//此处不加std命名空间
int a = 5;
int main()
{
    int a = 6;
    std::cout << a << std::endl;     //std::表明cout和endl是std中定义的标识符
    std::cout << ::a << std::endl;    //:: 表明a是全局变量
    return 0;
}

6.变量的引用

  • 对一个数据使用"引用",是C++对C的一个重要扩充
  • 引用声明符:& 这里不是寻址符
  • 引用的作用: 为一个变量取别名
int a;                  //声明整形a变量
int &b = a;             //声明b是a的引用,b是a的别名
a = 666;                //a赋值为666
cout << b << endl;      //输出的b也是666
  • 声明b为引用类型, 不会另外开辟空间.
    此时a和b都是内存中的同一存储单元, 地址相同.
    a和b的作用也完全相同,是同一个变量.
int m;              //声明整形m变量
int &n = m;         //声明n是m的引用,n是m的别名
m = 666;            //m赋值为666
n -= 146;           //n自减146
cout << m << endl;  //输出的m是520
//操作m 和操作n 都是操作的同一变量
  • 增加引用类型, 主要用于扩充函数传递数据
    在C语言中我们学习过, 调用函数时, 形参只是获取了实参的值, 无论被调函数如何操作都无法改变实参变量的数据. 所以我们有了地址传递. 那么当我们有了引用类型之后呢.
#include <iostream>
using namespace std;
void Swap(int& x, int& y)
{
    int temp;
    temp = x;
    x = y;
    y = temp;
}
int main()
{
    int a = 10, b = 20;
    Swap(a, b);
    cout << "a=" << a << endl;
    cout << "b=" << b << endl;
    return 0;
}
运行截图

7.const常量

  • 在定义变量时加上关键字const, 该变量在程序运行过程中不能改变.
  • 因为不能被改变, 所以在定义时必须要初始化.
  • 这种常量跟C的宏定义极为相似. 区别在于宏定义不需要内存空间, 而const常量需要内存空间.

8.C++的输入输出

  • C++的输入输出使用"流"(stream)的方式实现
  • 流运算符: 插入运算符<< 提取运算符>>
  • 输入流对象cin 提取运算符将输入流中的数据提取后存放到内存中
  • 输出流对象cout 插入运算符将内存中的数据插入到输出流中,显示出来.
  • 流对象(cin, cout)和流运算符(<<, >>)都不是C++本身提供的, 而是iostream库中.
  • 基本格式:

cout<<表达式1<<表达式2<<表达式3<<表达式4<<.....<<表达式n;
cin>>变量1>>变量2>>变量3>>变量4>>.....>>变量n;

cout<<endl; 这个是换行

  • cin不会读入空格和回车, 仅仅是将它当作分隔符, 如果想要读取空格和回车, 请使用getchar();
  • cout在输出时, 会自动识别数据的类型, 在输出浮点型数据时默认6位有效数字.
  • 格式化输出(这个并不重要, 需要时查阅相关资料即可).

9.内置函数/内联函数

  • 在调用函数的时候需要时间和空间,所以在C语言使用宏函数提升效率。
#define area(a,b) (a)*(b)
  • 在C++中用内置函数,内置函数在被调用时,直接将函数代码嵌入到主调函数中,不把它当函数,只当做代码。
  • 格式:在声明和定义内置函数的时候都加上 inline
  • 使用案例:
#include <iostream>
using namespace std;
inline int max(int a, int b, int c)
{
    if (b>a)a = b;
    if (c>a) a = c;
    return a;
}
int main()
{
    int m = 10, n = 20, p = 30;
    int k;
    k = max(m, n, p);
    cout << "max=" << m << endl;
    return 0;
}
  • 内置函数值是影响编译过程
  • 使用内置函数可以节约时间,但是却增加了目标程序的长度,因为这样的替换有可能出现很多次。所以:
    1. 一般只将5个语句以下而且使用频繁的函数作为内置函数。
    2. 内置函数中不能包括复杂的控制语句。
    3. 我们写上 inline 声明内置函数,只是给编译器的一种建议,而不是指令。

10. 有默认参数的函数

  • 在函数声明时,为形参赋初值,这样在调用的时候,我们可以不要实参。
int max(int a = 5);
int main()
{
    max();  //和max(5)一样
    return 0;
}

相关文章

网友评论

      本文标题:C语言到C++语言

      本文链接:https://www.haomeiwen.com/subject/nnshtqtx.html