最近在准备软件开发的笔试面试,复(yu)习(xi)了一些在软件开发中的常见知识。为了给自己攒点RP,故与大家分享一二。
软件开发需要准备的比较多,主要分为编程语言,数据结构和算法,计算机网络,计算机操作系统,数据库,设计模式,软件工程,软件测试。作为一个软件开发者(程序
猿)至少需要熟练一种语言,目前比较常见和普遍的有C/C++,,java ,python,C#(取2017年6月TIOBE编程语言排行榜前5),web端主要是javascript(js)和php,移动端
主要是java(android)和Objective-c(IOS),python热度持续上升,与最近机器学习,应该人工智能比较火有关吧。当然,编程语言在精不在多,曾经LZ也纠结过学哪种语
言比较好,哪种语言比较厉害,结果最后才发现一点用都没有。每种语言都有自己的擅长之处,根据自己的情况选择一门努力加深即可。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一.编程语言(以C++为例)
基础部分:
//基本类型,复合类型,表达式,关键字,函数,头文件
基本类型:
bool, char, wchar_t, char16_t, char32_t
short , int ,long,long long ,float, double ,long double.
可能大家觉得简单,没什么问题。
1.上述基本类型在32/64位系统上求sizeof大小。
2.上述基本类型取值范围,signed和unsigned溢出如何处理。
3.类型之间如何转换,精度如何。
4.类型在计算机上的储存方式。
复合类型:
引用& : 为对象起另外一个名字。 在C++11中增加了右值引用(rvalue reference)
指针* : 指向另一种类型的复合类型。 函数指针,指针函数,数组指针,指针数组
指针和引用区别
struct union enum的使用
表达式:
常量表达式,值不会改变 const constexpr 修饰
关系,赋值,比较,移位操作符的优先顺序与结合顺序
sizeof 与strlen的使用
sizeof()(基本类型,空结构体,空类,虚函数,static修饰的变量,字符串,指针,数组,作为参数的数组)
auto 和decltype C++11中增加
内存对齐原则
关键字:
const和static
const int *p; int const *p ; int * const p; const修饰函数,成员函数,形参
static 局部变量,全局变量,函数,成员函数等
violate和explcit
解释作用
函数:
内联函数与#define
递归理解