住房和城乡建设部网站 绿地,网站备案有时间吗,工商核名在哪个网站,一键生成淘宝主图的软件说明#xff1a;
面试群#xff0c;群号#xff1a; 228447240面试题来源于网络书籍#xff0c;公司题目以及博主原创或修改#xff08;题目大部分来源于各种公司#xff09;#xff1b;文中很多题目#xff0c;或许大家直接编译器写完#xff0c;1分钟就出结果了。但…说明
面试群群号 228447240面试题来源于网络书籍公司题目以及博主原创或修改题目大部分来源于各种公司文中很多题目或许大家直接编译器写完1分钟就出结果了。但在这里博主希望每一个题目大家都要经过认真思考答案不重要重要的是通过题目理解所考知识点好应对题目更多的变化博主与大家一起学习一起刷题共同进步写文不易麻烦给个三连
前面1-15已经是C/C,但是由于前面写的比较混乱把八股文和题目混在了一起所以从这一篇开始重新整理重新写前面1-15也就可以选看了希望多多支持 1.指针常量、常量指针、指向常量的常量指针
答案
1.const int* p //常量指针------指针指向的地址的内容不可以改变
2.Int const *p //常量指针
3.Int * const p // 指针常量------指针指向的地址可以不改变
4.const int * const p //指向常量的常量指针------指针指向的地址和指向的内容都不可以改变
2.使用指针的好处
答案
1.指针可以动态分配内存
2.在链表中可以方便修改链表的节点
3.解析字符串
4.相同类型的指针可以直接复制
3.指针和引用的异同如何转换
答案
1.都是指针的概念指针保存的是内存的地址引用是某块内存的别名这个内存一旦初始化就不能再去指向别的内存
2.两者都会占用内存
区别
指针是实体而引用是别名引用的本质是指针常量指向指针的地址不可以改变指向地址的内容可以改变自增表示的意义不同指针自增表示地址自增引用表示值自增引用必须初始化引用不能为空sizeof(引用)得到的是所指向的变量的大小sizeof(指针)的到的是指针大小引用不需要解引用
转换
指针转引用把指针用*就可以转换成对象可以用在引用参数当中引用转指针把引用类型的对象用取地址就获得指针了
4.二维数组
答案
int a[3][3];
1.int a[3][3];表示是个三行三列的二维数组
2.数组名表示数组首元素的地址即第0行第0个地址
3.a1表示地址偏移一个一维数组的地址即三列*int大小3*4 12
4.*a 表示去二维变一维*a就相当于一维数组的数组名比如 *a 1 表示第0行下标为1的元素地址只是偏移一个Int地址
5.若要表示a[2][2]的元素 即 *(*(a2)2) //解释 a2表示偏移2个一维数组 地址 *(a2)表示去二维变一维数组 地址 *(*(a2)2) 表示在一维的基础上偏移两个元素 数值
6.a[0] 1// 相当于一维数组移动一个int地址比如表示a[2][2]元素 *(a[2] 2) 对于二维字符数组的初始化
char str[][2] {“h”,”h”};
字符二维数组的初始化不能是字符要是字符串
5.数组初始化
答案
对于二维数组可以
Int num[][10] 第一个[]可以不填但是第二个必须填但是这个数组必须初始化
对于一维数组
Int num[] 这[]可以不填但是这个数组必须初始化
总结
数组的最左边的[]可以不填这个时候数组必须初始化二维数组的第二个[]必须填不管有没有初始化
6.调用Free释放内存后指针还能用吗
答案
Free释放掉内存后只是把内存的使用权就被归还给系统内存里面的东西可能被清除也可能是垃圾值但是指向这个内存的指针还是指向这块内存并不会NULL。
7.函数指针
答案
int (*pf)(int)
函数指针调用函数事注意以下几点
函数类型必须和函数指针的类型一样比如参数类型返回值给函数指针赋值是可以也可以不要
8.指针不能加指针
答案
指针之间可以做减法但不能做加法。
9.空指针的指向哪里
答案
空指针是指指向地址为0的地方。
10.数组声明和引用的下标
答案
声明下标只能是常量
引用下标可以是整形常量整形表达式整形变量。
11.预处理器标识#error的目的是什么
答案
编译程序时只要遇到#error就会生成一个编译错误提醒并且停止编译。
语法格式: #error error-message
实例:
#ifdef xxx
#error “xxx has been defined”
#else
#endif
12.头文件中 #ifndef #define #endif
答案
当项目中有多个c文件使用到同一个头文件是在编译的时候会出现大量的变量函数声明冲突解决就是使用。
#ifndef _HEAR_H_
#define _HEAR_H_
#endif
说可以是自由命名的但每个头文件的这个标识都应该是唯一的。标识的命名规则一般是头文件名全大写前后加下划线并把文件名中的 . 也变成下划线如stdio.h。