• 笔试题资源整理(2)


    5. what's reflection in java

     解答:一对一、一对多、多对一的映射概念

    6. How many data types can be used in swith (Java)?

     解答:int ,char,byte,short,boolean,enum(枚举)

    7.定义:

      a).指针数组:

     解答:定义 int *p[n];

     []优先级高,先与p结合成为一个数组,再由int *说明这是一个整型指针数组。它有n个指针类型的数组元素。

    p[0],p[1]...p[n-1]分别是指针变量用来存放变量地址。

      b).数组指针(也称行指针):

     解答:定义 int (*p)[n];

    ()优先级高,说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度为n,也可以说是p的步长。

    优先级:()>[]>*

    两者的区别:数组指针只是一个指针变量,指向的是一个数组(多用来指向二维数组),它占有内存中一个指针的存储空间。指针数组是多个指针变量(为避免搞混,你可以想到整型数组)占有多个指针的存储空间。

    同时用来指向二维数组时,其引用和用数组名引用都是一样的。
    比如要表示数组中i行j列一个元素:
    *(p[i]+j)、*(*(p+i)+j)、(*(p+i))[j]、p[i][j] 

     c).函数指针:  

     解答:函数指针是指向函数的指针变量,本质是一个指针变量(联系到C#中的委托)

     int (*p) (int x);  //声明一个函数指针

     p=func;   //将func函数的首地址赋给指针p

     指向函数的指针包含了函数的地址,可以通过它来调用函数。声明的格式:类型说明符 (*函数名)(参数)

     例子:

    void (*funcp)();
            void FileFunc(),EditFunc();
    
            main()
            {
                funcp=FileFunc;
                (*funcp)();
                funcp=EditFunc;
                (*funcp)();
            }
    
            void FileFunc()
            {
                printf(“FileFunc
    ”);
            }
    
            void EditFunc()
            {
                printf(“EditFunc
    ”);
            }
    
            程序输出为:
                FileFunc
                EditFunc

    d).指针函数

     解答:指针函数是只带指针的函数,其本质是一个函数,函数返回类型是某一类型的指针,声明格式为:

    类型标识符    *函数名(参数表)

       int *f(xy);

    首先要明白它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受。

     

    float *fun();

     

    float *p;

    p = fun();

    由于返回的是一个地址,所以类型说明符一般都是int
        
    例如:int *GetDate();
              int * aaa(int,int);

    例子:

     

     1 #include<stdio.h>   
     2 int * GetDate(int wk,int dy);//指针函数的声明
     3 
     4  main()
     5  {
     6    int wk,dy;
     7    int *result;//整型指针变量
     8            do
     9             {
    10                 printf("Enter week(1-5)day(1-7)
    ");
    11                 scanf("%d%d",&wk,&dy);
    12             }
    13             while(wk<1||wk>5||dy<1||dy>7);
    14             result=GetDate(wk,dy);//函数返回值赋给同类型的指针变量
    15             printf("%d
    ",*result);
    16  }
    17 
    18  int * GetDate(int wk,int dy)
    19  {
    20             static int calendar[5][7]=
    21             {
    22                {1,2,3,4,5,6,7},
    23                {8,9,10,11,12,13,14},
    24                {15,16,17,18,19,20,21},
    25                {22,23,24,25,26,27,28},
    26                {29,30,31,-1}
    27             };
    28             return &calendar[wk-1][dy-1];
    29  }
    View Code

     

    e).指针的指针

    解答:

     

    指针的指针需要用到指针的地址。
            char c='A';
            char *p=&c;
            char **cp=&p;

    用法举例:

     

     1 #include<stdio.h>   
     2 void FindCredit(int ** fpp);
     3 main()
     4 {
     5     int vals[]={7,6,5,-4,3,2,1,0};
     6     int *fp=vals;
     7     FindCredit(&fp);
     8     printf("%d
    ",*fp);
     9 }
    10 
    11 void FindCredit(int ** fpp)
    12   {
    13       while(**fpp!=0)
    14       if(**fpp<0) break;
    15       else (*fpp)++;//*运算符优先级高于++运算符,所以()是必须的。
    16   }

     

    f).指向指针数组的指针:

    难点,怎样灵活运用,例子还没弄出来。

    8.Describe scope of public/private/frined/protected/protected frined

    解答:

    Public   公用   同一项目中任意位置的代码,引用该项目的其他项目,以及由该项目生成的任何程序集
    Protected   保护   同一个类内部或从该类派生的类中访问元素。
    Friend   友元   从同一程序集内部访问元素,而不能从程序集外部访问
    Protected   Friend     Protected 和 Friend的联合派生类或同一程序集内,或两者皆可
    Private   私有   仅可以从同一模块、类或结构内访问元素

    程序集:经由编译器编译得到的,供CLR进一步编译执行的那个中间产物,在WINDOWS系统中,它一般表现为.dll,或者是.exe的格式,但是要注意,它们跟普通意义上的WIN32可执行程序是完全不同的东西,程序集必须依靠CLR才能顺利执行。

     

    作者:wj704    出处:http://www.cnblogs.com/wj204/   
  • 相关阅读:
    thinkphp的钩子的两种配置和两种调用方法
    php闭包实现函数的自调用,也是递归
    php的spl_autoload_register函数的一点个人见解
    详解js变量、作用域及内存
    关于js的call()和apply()两个函数的一点个人看法
    php实现斐波那契数列以及由此引起的联想
    php猴子称王或者约瑟夫难题
    Linux Bash Shell 快速入门
    Fedora14下首次搭建Samba服务器遇到的一些问题
    【JavaScript】我的JavaScript技术总结第一篇——编程细节
  • 原文地址:https://www.cnblogs.com/wj204/p/3341389.html
Copyright © 2020-2023  润新知