1.引用和指针的区别
1> 非空性区别
指针可以指向NULL,引用必须指向某个对象;
2> 可修改性区别
指针可以指向不同的对象,引用总是指向初始化的对象;
3> 合法性区别
在使用指针之前需要判断指针是否为NULL,引用则不需要判断;
2.malloc和calloc的区别
1> malloc只有一个参数,即需分配内存的大小,而calloc有两个参数,分别为元素的个数和元素的大小,两者乘积为需分配内存的大小;
2> malloc不能对内存初始化,而calloc对内存的每一位都初始化为0;
3> malloc函数调用成功后返回为一个对象,而calloc会返回一个由某种对象组成的数组;
4> calloc函数由于要对每一个空间进行初始化,效率较malloc要低;
3.为什么需要进程间通信(IPC)
1> 实现数据传输:一个进程需要将它的数据发送给另一个进程(合作);
2> 实现资源共享:多个进程之间共享同样的资源(协作);
3> 实现事件通知:一个进程需要向另外一个或一组进程发送消息,通知它们发生了某种事件(同步);
4> 实现进程控制:(控制);