面试笔记2

《C/C++程序员面试宝典》学习笔记。







自我评价,缺点也要说,

因为认识自身的不足,也是应该具备的,


基础数据类型分为,整数型,浮点型,void型,

整数型,用来表示整数,字符,布尔值,

一般来说,short代表半个机器字长,int代表一个机器字长,long代表一个或二个机器字长,



4000UL,代表4000是无符号数,长整型,



浮点型由整数和小数两部分组成,

浮点常数只有十进制一种形式,

浮点常数默认为double,





常量本身没有地址属性(除字符串常量等),所以常量只能用作右值,



在所有的优先级中,单目运算符,条件运算符,赋值运算符,是从右至左结合的,

其它都是从左至右结合的,这个总结不错,好记!



前自增自减操作的优先级大于赋值运算符=,

后自增自减操作的优先级小于赋值运算符=,




声明,是表明变量的类型和名称,

定义是为变量分配存储空间,




存储类型,

自动,auto,

寄存器类型,register,直接使用寄存器,而不是再分配一个空间,

静态类型,static,只能在它的作用范围内使用,

外部类型,extern,使用的前提是全局变量,

如果一个全局变量不想被其它文件使用,就声明为static的,





匈牙利命名法,



for循环更多用于遍历,

while和do-while更多用于状态判断,




break用于结束最近的while,do-while,for,switch,

continue,是跳出当前循环的,一次!!!


switch,括号中的内容,至少其结果是一个整数,




递归算法的运行效率相对较低,



汉诺塔,




对标准输入输出设备的输入输出简称为标准I/O,

对外存磁盘文件上的输入输出简称为文件I/O,

对内存中指定的字符串存储空间的输入输出简称为串I/O,



C++文件流相关内容,不熟悉啊,



像通信交换机和路由器这类长期运行过得交互式系统,必须将90%的程序代码用于实现错误检测和错误处理,






指针函数,本质是函数,

只是说明这个函数的返回值是一个指针,




this指针,很多时候是编译器隐式的帮我们插入的,



指针是一个实体,而引用仅仅是一个别名,

引用开始初始化,之后不可变,这点引用本质分析的时候,也讲过,



面向过程,程序=算法+数据,

面向对象,程序=对象+消息,


面向对象,封装,继承,多态,



实例化的类,存储在内存的堆中,

而结构体存储在栈中,

结构执行效率高些,



类的静态方法只能访问类的静态成员,



有3种情况会使用copy构造函数,

1,一个对象以值传递的方式传入函数体,

2,一个对象以值传递的方式从函数返回,

3,一个对象需要通过另外一个对象进行初始化,

这里正好把我之前的学习,进行了一个小的总结,不错!




静态函数没有this指针,只能访问静态变量,

之前知识点,换个说法,





十进制转二进制,还用到了STL,怪不得写起来这么舒服,






字符串转换为整数,










全局对象的构造函数会在main()函数之前执行,



外部变量虽然属于静态存储方式,但不一定是静态变量,

全局变量存储在静态数据区,











int (*s【10】)(int),

这是什么,真的很容易迷糊人啊,

这是函数指针数组,

这么来分析吧,首先这是一个数组,肯定的!

扣掉数组的括号,下面的部分,一眼就看出来是函数指针,

所以结果就是函数指针数组,







这个有意思,又来了,





这个题,感觉和嵌入式关系好紧密,看看~,




程序改错题,很多细节问题,

int main()
{
	//这个题目要逆序字符串
	char *src = "hello world";
	char *dest = NULL;
	int len = strlen( src);
	dest = (char *)malloc( len+1);
	char *d = dest;
	char *s = &src[len-1];
	while( len--!=0)
		*d++ = *s--;//这里是要逆序,s--,我敲成了s++,
	*d = 0;	//这里要加个结尾符,忘记了
	cout<<dest<<endl;
	system("pause");
	return 0;
}








比较标准的strcpy和strlen函数实现,





这个题不错,为什么这么说呢,

以前通过交换函数,了解到了形参与指针的区别,

具体到这里,str开始被设置为NULL,

通过函数传参,str里面存的值,被丢给了形参,

形参在内部malloc过程中,又被赋予的新的值,

但是这个新值与str没关系,str还是NULL,所以strcpy是错的,






如果没记错,用字符串给【字符数组】和【字符指针】进行赋值,是不一样的,

如果把这个题目中的p改为字符指针,就可以运行了,多想想吧,





内存申请,要判断成功与否,使用完毕要释放,最后要置NULL,否则容易野指针,

二级指针,看的还是少了,




没有合适的内存,所以出错,





这个题,算是我目前薄弱的地方,

第一个错误是,超出表示范围,又变为0,从而导致死循环,

第二个错误是,超过了数据的表示范围,导致越界,



sizeof()讲解,

只能测试出静态数组的大小,

对于动态分配的,通过函数传参得到的数组,一般都得到的是指针的大小,比如我的机器就是4,





我感觉讲解是对的,可是我没有加const,也通过了,可能还有其它方面的愿意吧,





编程实践题,看看就行,不想写,





这种题,不太好想出来,还是记住的好。

ps:abs是求绝对值函数,头文件是#include <stdlib.h>





这个问题很实在,




atol();

头文件stdlib.h

把字符串转换为长整型,





后面还有一堆,智力测试,逻辑测试,感觉考这比较少,闲的时候,看看,








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值