张壁锦IT笔试面试技术题分享会ppt.ppt
《张壁锦IT笔试面试技术题分享会ppt.ppt》由会员分享,可在线阅读,更多相关《张壁锦IT笔试面试技术题分享会ppt.ppt(22页珍藏版)》请在三一文库上搜索。
1、笔试、面试经历交流会,-张壁锦,笔试题目,行测逻辑题 基础知识点考查题 编码题 逆天的题目,基础知识点考查题,指针和引用的关系 Const Volition Static Extern c 内联函数和宏定义,指针和引用的区别?,1、从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。 2、从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域。 3、从编译上看:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后
2、就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。 引用:一个变量的别名,为什么引入别名呢?原因是我们想定义一个变量,他共享另一个变量的内存空间,使用别名无疑是一个好的选择。变量是什么?是一个内存空间的名字,如果我们给这个内存空间在起另外一个名字,那就是能够共享这个内存了,引用(别名)的由此而来。 指针:指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的内存空间。,Const(只读),const修饰符可以把对象转变成常数对象,意思就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用! 在C语言中,
3、const的意思是“一个不能被改变的普通变量”,它总是占用存储空间而且它的名字是全局的。C编译器不能把const堪称一个编译器间的常量。所以在C中你可以这么写: const int bufsize;/不赋值。 但不能这么写: cosnt bufsize = 100; char bufbufsize; /因为bufsize不是常量。 但是在C+里,上面两种情况正好反过来。在C+里const修改的量表示常量,必须在初始化时赋值,并且可以作为数据的维数,堆与栈的区别,heap area存放程序的动态数据 stack area存放程序的局部数据 1、栈区(stack) 由编译器自动分配释放 ,存放函数
4、的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。地址是由高向低减少的 2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。地址是由低向高增长的,Extern “C”是由提供的一个连接交换指定符号,用于告诉这段代码是函数。这是因为C+编译后库中函数名会变得很长,与C生成的不一致,造成不能直接调用C函数,加上extren “c”后,C+就能直接调用C函数了。 Extern “C”主要使用正规DLL函数的引用和导出 和 在C+包含C函数或C头文件时使用。使用时在前面加上extern “c”
5、关键字即可 extern是C/C+语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句: extern int a; 仅仅是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现连接错误。 通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;它
6、会在连接阶段中从模块A编译生成的目标代码中找到此函数。,static关键字,在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。,与extern对应的关键字是static,被它修饰的全局变量和函数只能在本模块中使用。因此,一个函数或变量只可能被本模块使用时,其不可能被extern “C”修饰。,volatile,一个定义为volati
7、le的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) 3). 多线程应用中被几个任务共享的变量,用变量a给出下面的定义,a) 一个整型数(An integer) b) 一个指向整型数的指针(A pointer to an integer) c) 一个指向指针的的指针,它指向的
8、指针是指向一个整型数(A pointer to a pointer to an integer) d) 一个有10个整型数的数组(An array of 10 integers) e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers) f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers) g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an arg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 张壁锦 IT 笔试 面试 技术 分享 ppt
链接地址:https://www.31doc.com/p-2736677.html