• C/C++


    二十六、       字符型数组,指针数组

           对char *p=”Hello;实际上p是一个指针,指向的内容是字符串常量Hello,指向的内容是不可修改的!如果执行*p+1=’F’操作是错误的!

           因为p是指针,可以让p指向别的内容,如p=“china”是正确的。

           char p[]=”Hello”;实际上是一个字符串数组初始化的方式,字符串数组有两种初始化方式,一种是这样的初始化,另外一种是列表初始化;

           而p可以理解为是一个常量指针,p的值不可修改,如p++操作是错误的。

    二十七、       虚函数

           虚函数是在基类中作总体框架定义,定义时在函数zhi的返回类型名前加上virtual构成dao。它的具体不同实现版本是在其类的派生类里实现的。纯虚函数是在其类中连基本框架都定义不出来,所以只是用“virtual 类型名 函数名()=0;”的形式来声明基类中有这么一个函数,而它的实现则完全由基类的派生类根据不同需要来完成。

    在C++中基类必须将它的两种成员函数区分开来:一种是基类希望其派生类进行覆盖的函数;另一种是基类希望派生类直接继承而不要改变的函数,对于前者通常定义为虚函数,当我们使用指针引用对虚函数的调用将被动态绑定,即根据所绑定的对象不同,所执行的函数不同,有可能是基类的,也有可能是派生类的。C++中多态就是通过虚函数来实现的。

           每个成员函数都包含一个特殊的指针,叫this指针,这里不同类中的虚函数(成员函数)指针不一样,故而区分。

    二十八、       二维数组与数组指针

           例:在C语言中,若有定义:int a[4][10](其中a<=i<4,0<=j<10);则下列选项中对数组元素a[i][j]引用错误的是(A)

           A     *(a+i)+j

           B     *(&a[0][0]+10*i+j)

           C     *(a[i]+j)

           D     *(*(a+i)+j)

           解析:

           A是a[i][j]的地址,而D选项是在A的基础上再取*则是a[i][j]的值。

           B正确,a[0][0]取地址是数组第一个元素的地址,加上10*i为第i行第0个元素的地址,再加j是a[i][j]的地址,再取*是a[i][j]的值。

           C正确,a[i]是第i行第0个元素的值,加j后为a[i][j]的地址,再取*就是a[i][j]的值。

           对于二维数组,取一个*是为地址,取两个*就是指针所指向的值。

    二十九、       ++,--例题

           例:若执行下面的程序时,从键盘上输入5,则输出是(6)。

           int main(int argc, char ** argv)

    {

           int x;

           scanf(“%d”,&x);

           if(x++>5)

                  printf(“%d ”,x);

           else

                  printf(“%d ”,x--);

           return 0;

    }

    进行if判断时由于++在后所以先进行判断,然后++,不满足条件进入else,此时x++变为6。

    进入else后由于--在后所以先打印,之后再--,打印出的x为6,然后x--变为5。

    三十、    函数类型返回值基础知识

    1、 返回值

    C中:如果函数未指定返回值类型,则默认为int

    C++中:如果一个函数没有返回值,返回值类型必须指定为void

    2、 参数列表

    C中:如果函数没有指定参数列表,则默认可以接受多个参数。

    C++中:有严格的类型检测,没有参数列表的函数默认为void,不接受任意参数。

    3、 缺省参数(即给参数一个默认值)

    C:不支持。

    C++:支持(如果没有指定实参则使用缺省值,有则使用指定参数)

    1) 默认实参必须在参数列表的结尾

    2) 默认参数只能出现在函数声明或者定义二选一中

    3) 缺省值必须是常量或全局变量

    4) 缺省参数必须是值传递或者常参传递

    4、 函数重载

    C:不支持

    C++:支持在同一作用域中存在几个功能类似的同名函数,但参数列表(参数个数、类型、顺序)不同

    5、 引用和指针

    引用:可以看作是一个变量的别名

    特点:

    a)      必须初始化

    b)      一个变量可以有多个引用

    c)      引用一旦初始化,就不能再成为其他变量的引用(数组不能被引用)

    引用与指针的异同:

           同:底层实现相同

           异:

    a)    引用必须初始化

    b)    引用一旦绑定就不能更改

    c)    ++的结果不同

    d)    有多级指针,没有多级引用

  • 相关阅读:
    Hibernate(九)HQL查询
    Hibernate(八)多对多映射
    Hibernate(七)一对一映射
    Hibernate(六)一对多映射(多对一)
    Hibernate(五)基本数据类型
    Hibernate(四)结构-基础语义和事务
    Hibernate(三)结构-配置文件-实体映射及配置文件
    Hibernate框架简介(二)基本使用增、删、改、查
    Hibernate生成实体类-手工写法(一)
    Java从零开始学四十(反射简述一)
  • 原文地址:https://www.cnblogs.com/TheFly/p/13099218.html
Copyright © 2020-2023  润新知