zoukankan      html  css  js  c++  java
  • c++语法大全笔记(一)

      c++是一种中级语言,是c的扩充,是一种面向对象的程序设计语言,可以运行到多个平台。这里直接讲语法。

      基础c++模板:

    #include <iostream>
    using namespace std;
    int main()
    {
        cout << "Hello, world!" << endl;
        return 0;
    }
    



    一:初级知识

    1.输入输出

      标准输入输出流cout和cin,分别代表输入流对象和输出流对象,在头文件iostream中定义。键盘和显示器是计算机的标准输入输出设备,标准流是直接不需要打开文件就可以操作的流式文件。

      输出:cout和输出运算符<<配合使用,<<作为输出信息的"插入运算符",可以输出多个输出项,把内容依次插入到输出流cout中,不需要类型判断。

      输入:cin和输入运算符>>配合使用,>>作为输入信息"提取运算符",可以输入多个输出项,从输入设备键盘提取数据到cin中

      endl(end of line)代表回车换行操作。

       c++允许对变量的声明放在程序的任何位置(但必须在使用该变量之前)。

    2.用const定义常变量

      c语言的#define只是预编译时进行的字符置换,不占用内存单元。而c++中用const定义常变量,具有变量的属性,有数据类型,占用存储单元,可以用地址指向它,在程序运行过程中的值是固定的。

    3.函数定义和声明

      在c++中。如果函数调用的位置在函数定义之前,则要求在函数调用之前必须对所调用的函数作函数原型声明。一般形式是:

    # 函数类型 函数名(参数表);例如:
    int max(int x,int y,int z);
    int max(int,int,int);
    

    在编译时只检查参数类型,不检查参数名。

    4.函数的重载

      c++允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不相同,用来实现不同的功能。,这就是函数的重载,即一个函数名多用。

      下面是一个例子:

    # 第一个函数
    int a(int a,int b){}
    # 第二个函数
    float a(float a,float b){}
    # 第三个函数
    long a(long a,long b){}
    

      这里要注意的是,参数的个数和类型至少有一个不同,返回值可以相同也可以不同,但不允许参数个数和类型相同而只有返回值不同。

    5.函数模板

      这个函数模板就是建立一个通用函数,这个函数的函数类型和形参类型不具体指定,用一个虚拟的类型代表,在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,实现了不同函数的功能。定义模板的一般形式为:

    # template <typename T1,typename T2,typename T3> 或者:
    # template <class T1,class T2,class T3>
    

      下面是一个例子:
    template <typename T>
    T show(T a,T b){}
    

       使用函数模板比函数重载更方便,更简单,但是只适合函数的参数个数相同而类型不同,且函数体相同的情况。

    6.有默认参数的函数

      c++在函数调用时给形参一个默认值,就减少了重复。实参个数和形参个数不需要相同。但是默认参数要放在形参列表中的最右端,否则可能就会被覆盖,或者参数不够而报错。

      要注意的是必须在函数调用之前在函数定义(定义在调用前)或者函数声明(定义在调用后)进行给出默认值。而且定义和声明都给默认值的情况下,取声明的值,因此最好只在函数声明时指定默认值

       一个函数不能既作为重载函数,又作为有默认参数的函数,会出现二义性。

    7.变量的引用

      在c++中,变量的引用就是变量的别名。如下:

    int a;
    int &b = a; #声明b是一个整型变量的引用,初始值为a
    

      这里的&是"引用声明符",并不代表地址,在声明一个引用时,必须同时进行初始化,代表哪一个变量。

      在建立引用时只有声明,没有定义。


      引用的注意事项:

      (1)引用必须与某一种类型的数据相联系。

      (2)引用与其所代表的变量共享同一内存空间。

      (3)区分&a是声明引用变量还是取地址,就看前面有没有类型符。

      (4)可以给一个变量声明多个引用。

      (5)引用在初始化后不能再被重新声明为另一个变量的别名。

    8.变量的引用作为函数参数

      c++之所以增加"引用",是为了利用它作为函数参数,是为了让函数的数据传递更方便。函数的参数传递只要有以下两种情况。

      将变量的引用作为形参

      c++把变量的引用作为函数形参,就可以指向同一地址单元。对引用型形参的初始化是在函数调用时通过虚实结合实现的。

      引用和使用指针变量做函数形参的区别

      使用引用不必使用指针变量,就不需要另外开辟内存空间,调用时实参不必加&,系统直接传的是实参的地址,也不必使用指针运算符*。

       引用细节

      (1)不能建立void的引用。

      (2)不能建立引用的数组。

      (3)可以将变量的引用的地址赋给一个指针,此时指针指向的是原来的变量。但是不能直接建立指向引用类型的指针变量。

    int a = 2;
    int &b = a;
    int *p = a; #p相当于a变量的地址
    

      (4)可以建立指针变量的引用

    int i = 3;
    int *b = &a;
    int* &pt= b #pt相当于b
    

      (5)可以用const对引用加以限定,不允许改变引用的值

    int i = 3;
    const int &a = i; #声明常引用,不允许改变i的值
    

      (6)可以用常量或表达式对引用进行初始化,但此时必须用const做声明

    int i = 3;
    const &a = i + 2;
    

    上面的const &a = i + 2;语句相当于:

    int temp = i + 2;     #临时变量在内部实现,用户不能访问
    const int &a = temp;
    

    也可以用不同类型的变量进行初始化:

    double d = 3.252;
    const int &a = d;
    

    相当于:

    int temp = d;
    const int &a = temp;
    

    此时a的值为3.

    上面是c++的基础,之后的文章会向大家介绍c++的一些高级的语法。

  • 相关阅读:
    Linux中使用mysqldump对MySQL数据库进行定时备份
    Linux备份数据库,mysqldump命令实例详解
    laravel 怎么获取public路径
    laravel 返回值
    [Deep-Learning-with-Python]机器学习基础
    [Deep-Learning-with-Python]基于Keras的房价预测
    [Deep-Learning-with-Python]基于Kears的Reuters新闻分类
    基于Keras的imdb数据集电影评论情感二分类
    [Deep-Learning-with-Python]神经网络入手学习[上]
    [Deep-Learning-with-Python]神经网络的数学基础
  • 原文地址:https://www.cnblogs.com/ITXiaoAng/p/11735199.html
Copyright © 2011-2022 走看看