C++ 需要注意的知识点

1. #ifndef 和 #program once的区别

2. #include <> 和 “ ” 的区别

3. 无符号和有符号都有1、2、4字节的结构,什么时候用无符号数?什么时候用有符号数?

4. #pragma pack(push,packing)  #pragma pack(pop,packing)

#pragma pack(1) 

#include <winsock2.h>  #pragma comment(lib,"ws2_32")

5. typedef 和 #define 的区别

6. 不同文件里包含同一命名空间

7. WSASocket 与 Socket 区别?

 8. memset 和 malloc 使用区别?

9. malloc free 和 new delete 的区别?

new 与 malloc 的区别在于,new在分配完内存之后会调用构造函数。

10. 深拷贝和浅拷贝的区别?

浅拷贝:简单地赋值

深拷贝:在堆区重新开辟内存进行拷贝

什么时候用深拷贝?拷贝指针的时候,B浅拷贝A,如果A被释放了,那么再调用B就会崩溃。需要深拷贝重新给B申请一块内存。

11. const 加载函数前后的区别?

12. 指针的引用是什么?有什么用?

13. 用char数组千万记得加结束符'\0',否则会乱码。

14. 容易造成内存溢出的函数:

  • strcpy:会将字符串复制到缓冲区,建议使用strncpy()
  • strcat:会将字符串合并到缓冲区末尾,建议使用strncat()
  • sprintf():跟strcpy一样
  • scanf()系列

   

posted @ 2022-07-04 14:50  番茄玛丽  阅读(31)  评论(0编辑  收藏  举报