参数数据类型 int 对于 substring 函数的参数 1 无效。_C++软件工程师面试_基础篇(1)...

导读:在C++程序员面试的时候,一般都需要笔试和面试,笔试往往是考核基础的知识,面试往往是考核基础加项目经验等。而笔试时候,经常发现,明明很简单的问题,却答不出来,或者即使答出来,也不全面。现将C++软件工程师岗位面试知识进行汇总和解答。

本篇是C++基础篇,主要内容如下:

(1)指针定义;

(2)空指针和悬垂指针的区别;

(3)指针(*)、引用(&)、解引用(*)、取地址(&)、的概念和区别

(4)static关键字

(5)const关键字

(6)enum和#define区别

(7)#progma

(8)预处理

(9)sizeof

(10)const与宏定义的区别

ddc465d703c06cbf1ac78ae12c8861f6.png

1 C++基础

1.1 指针定义

(1)、指针变量

a) int a; //一个整型数

b) int *a; //一个指向整型数的指针

c) int **a; //一个指向指针的的指针,它指向的指针是指向一个整型数

d) int a[10]; //一个有10个整型数的数组

e) int *a[10]; //一个有10个指针的数组,该指针是指向一个整型数的

f) int (*a)[10]; //一个指向有10个整型数数组的指针

g) int (*a)(int); //一个指向函数的指针,该函数有一个整型参数并返回一个整型数

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

(2)、函数指针

是一个指向函数的指针。看例子:

A),char * (*fun1)(char * p1,char * p2);//fun1 不是函数名,而是一个指针变量,它指向一个函数。这个函数有两个指针类型的参数,函数的返回值也是一个指针。

B),char * *fun2(char * p1,char * p2);//是个二级指针

C),char * fun3(char * p1,char * p2);//函数的返回值为char *类型

1.2 空指针和悬垂指针的区别

空指针是指被赋值为NULL的指针;delete指向动态分配对象的指针将会产生悬垂指针。

空指针可以被多次delete,而悬垂指针再次删除时程序会变得非常不稳定;

使用空指针和悬垂指针都是非法的,而且有可能造成程序崩溃,如果指针是空指针,尽管同样是崩溃,但和悬垂指针相比是一种可预料的崩溃。

7cdd6b89e0ea56a54299aad28e765557.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值