5059日常总结

1.一个函数的形参是const char*,实参是可以是char*,如果一个函数的返回值是const char*,不能用char*来接收返回值
2.为什么没有静态的构造函数和析构函数?
构造函数成员函数使用现有分配构造指定的对象 - 即存在this。
static成员函数指定对象没有存储,因此没有关联的实例要构造 - 即this不存在。因此,无法指定静态构造函数。
3.为什么采用从右到左的参数方式,而不使用从左到右的传参方式呢?
一般我们命名一个变长函数时都类似于int display(int i, …);这种格式,
注意参数都是用压栈方式实现的,
这里我用反证法来举证,
假如使用从左到右的传参方式,栈顶看到的是最后一个参数,那么我怎样知道首参数是哪一个呢?
因此要想知道首参数的值,则必须要知道参数的长度.而栈里并不知道这个长度,那么就无法通过指针偏移的方式找到首参数.
如果使用从右到左的传参方式,栈顶看到的就是左边输入的首参数,因此,无论怎样的变长,都可以通过指针偏移的方式找到值.
3.linux下对正在读写的文件进行操作
(1)移动
由于Linux下的查询文件功能是根据文件的inode来实现的,所以当移动正在读写的文件时,不会造成错误;
(2)删除
文件的读写依然是成功的,删除的只是文件名,文件内容依然存在,可以通过文件恢复指令将其恢复。
可以在不关闭软件的情况下进行更新,不需要重启。因为系统通过inode号码,识别运行中的文件,不通过文件名。更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件。等到下一次运行这个软件的时候,文件名就自动指向新版文件,旧版文件的inode则被回收。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值