• c++学习笔记---02---从一个小程序说起


    从一个小程序说起

    这一讲的主要目的是帮助大家在C语言的背景知识上与C++建立联系。

     

    问题探索

    问题:对一个整型数组求和。

    要求:定义一个存储着 n 个元素的数组,要求用C语言完成这个任务。

    赶紧的:大家一起动手!

    参考:

    #include <stdio.h>
    
    int addArray( int array[], int n );
    
    int main()
    {
          int data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
          int size = sizeof(data) / sizeof(data[0]);         
    
          printf("结果是: %d
    ", addArray( data, size ));
    
          return 0;
    }
    
    int addArray( int array[], int n )
    {
          int sum = 0;
          int i;          
    
          for( i=0; i < n; i++ )
          {
                sum += array[i];
          }
    
          return sum;
    }

     

    深入一点思考

    我们说数组和指针他们的关系很复杂。

    在刚才的例子中,我们加点“料”试试~

    然后我们还能得出第二个版本的程序:

     1 #include <stdio.h>
     2 
     3 int addArray( int *array, int n );
     4 
     5 int main()
     6 {
     7       int data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
     8       int size = sizeof(data) / sizeof(data[0]);
     9 
    10       printf("结果是: %d
    ", addArray( data, size ));
    11 
    12       return 0;
    13 }
    14 
    15 int addArray( int *array, int n )
    16 {
    17       int sum = 0;
    18       int i;
    19 
    20       for( i=0; i < n; i++ )
    21       {
    22             sum += *array++;
    23       }
    24 
    25       return sum;
    26 }

     

    轮到C++了

    以上两个程序从本质上来说是相同的,我们得出结论:将函数的参数声明为数组和声明为指针是一样的。

    现在我们来考虑一个新的问题:将该程序用C++来实现试试。

     1 #include <iostream>  // ostream  C92 C99
     2 
     3 // using namespace std;
     4 
     5 int addArray( int *array, int n );
     6 
     7 int main()
     8 {
     9       int data[] = {0, 1, 2, 3, 4, 5,6, 7, 8, 9};
    10       int size = sizeof(data) / sizeof(data[0]);
    11 
    12       std::cout << "½á¹ûÊÇ: " << addArray(data, size) << std::endl;
    13 
    14       return 0;
    15 }
    16 
    17 int addArray( int *array, int n )
    18 {
    19       int sum = 0;
    20       int i;
    21 
    22       for( i=0; i < n; i++ )
    23       {
    24             sum += *array++;
    25       }
    26 
    27       return sum;
    28 }

    程序分析

    这个小程序展示了C++对象的第一次使用。对象在哪里?就是这个”cout“。

    cout 是一个输出流对象,它是”console out(控制台输出)“的缩写。是属于basic_ostream 类的对象。ostream 类在iostream头文件中定义。

    什么是输出流?

    其实也就是一个概念,在C++中引入了很多类似的概念:例如数据可以从键盘流入程序,又可以从程序流向屏幕、打印机等~

    using namesapce std;

    这条指定带给我们一个全新的概念:名字空间。

    就是C++标准库所使用的所有标识符(即类、函数、对象等的名称)都是在同一个特殊的名字空间(std)中来定义的。

    如果我们没有使用这条指令,我们将需要使用std::cout 这样的语法来调用输出流对象。

    不知道大家有没有注意到“<<”这个符号很眼熟?

    这个操作符不是C语言里边位运算的左移操作符吗?难道在C++里边改规则了?

    事实上不是这样的,它只不过体现了C++的另一个特点:支持重载。重载事实上就是允许我们按照不同的方式使用同一个操作符。我们后边会详细讲解。

  • 相关阅读:
    windows 配置免密登录 centos7
    早盘消息 2月16日 周三
    早报 3月1日 周二
    早报 2月23日 周三
    早报 3月4日 周五
    早报 2月21日 周一
    早盘消息 2月17日 周四
    早报 2月22日 周二
    如何在远程机器上运行多个 SSH 命令并安全退出
    早报 2月28日 周一
  • 原文地址:https://www.cnblogs.com/alimjan/p/7614620.html
Copyright © 2020-2023  润新知