C++面试题

 

1.虚函数定义的限制

   非类的成员函数不能定义为虚函数,类的成员函数中静态成员函数和构造函数也不能定义为虚函数,但可以将析构函数定义为虚函数。

2.运算符优先级及结合性的理解

   口诀:括号成员第一((),[ ],  ->, ·),单目运算你别急(!, ~, ++, --, -, (类型), *, &,sizeof),乘除三,加减四,移位 五,关系六,等与不等第七,位与异或及位或,三分天下八九十(&, ^ , | ),逻辑与或有高低,条件高于赋值,逗号运算最低

     结合性:除单目运算符,条件运算符,赋值运算符为自右至左(右结合),其余均为自左至右(左结合)。

      左(右)结合均是针对变量而言的,如a - b + c;根据结合性,b先与减号结合,执行a - b的运算,再执行加c的运算。从整个式子(宏观上)看也可理解为从左至右依次运算。

  

3.void指针

    ①void指针可以指向任意类型的数据

    ②任意类型的指针可以直接赋值给void指针而无需强制转换

      例如:void* p;

                  int*  a;

                  p = a;

       但反过来将  a= p 则错误

    ③根据ANSI标准,不能对void指针进行算法操作,例如下面则错误

        void* p;

        p++;  //错误

        p += 1; //错误

       原因:ANSI标准之所以这样认为,是因为它坚持,进行算法操作的指针必须是确定知道其所指向数据类型大小的

   ④如果函数参数可以是任意类型的指针,那么应声明参数为void*

       例如:void *memcpy(void *dest, const void *src, size_t n);

4.关于sizeof和strlen

   char  str[] = “Hello” ;   //sizeof(str) = 6

   char   *p = str ;           //sizeof(p) = 4

    int     n = 10;              //sizeof(n) = 4     

    void *p = malloc( 100 );   //sizeof(p) = 4  

   void Func ( char str[100])

   {

   请计算

  sizeof(str) = 4  ;      

   }

 

   sizeof是求所占空间,strlen是求长度

    例如:char str[100] = "Hello World!";

              则  sizeof(str)  = 100 ;

                    strlen(str)  =  12;到/0则停止计数

 

5.关于各种指针的定义

   

1,一个整形数:  int a;

2,一个指向整形数的指针: int *a;

3,一个指向指针的指针,它指向的指针指向一个整形数:  int **a;

4,一个有10个整形数的数组: int a[10];

5,一个有10个指针的数组,每个指针指向一个整形数: int *a[10];

6,一个指向有10个整形数的数组的指针:  int (*a)[10];

7,一个指向指针的指针,被指向的指针指向一个有10个整形数的数组: int (**a)[10];

8,一个指向数组的指针,该数组有10个整形指针:  int *(*a)[10];

9,一个指向函数的指针,该函数有一个整形参数并返回一个整形数: int (*a)(int);

10,一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整形数:                      int (*a[10])(int);

11,一个函数的指针,指向的函数的类型是有两个整形参数并且返回一个函数指针的函数,返回的函数指针指向有一个整形参数且返回整形数的函数:  int (*(*a)(int,int))(int);

 

6.关于强制类型的考察

  (int) a、&a、(int)&a(int&)a的区别:

 

7.static的考察

待续。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值