This is my study note of C++.

C与C++中的struct有什么区别

  • C中struct没有protection行为,同时不可以定义函数,但是可以创建函数指针。
  • C++中struct有protect的行为,同时可以定义函数。

如何判断一个代码为C还是C++

使用__cplusplus

1
__cplusplus是C++特有的宏,如果#ifdef __cplusplus通过,则说明代码段为C++代码。

堆区除了malloc还有哪些内存操作函数

  • void *realloc(void *ptr, size_t size)
    1
    2
    3
    重新调整已经分配内存的大小。
    ptr:表示之前malloc返回的指针
    size:表示重新分配的内存块大小
  • void *calloc(size_t num, size_t size)
    1
    2
    3
    用于堆区分配指定内存的数量。
    num:表示分配的元素数量。
    size:表示每个元素的大小

C和C++环境的区别

  • 函数重载
    1
    C++支持函数重载,可以定义多个同名参数,C不行
  • 函数默认参数
    1
    C++支持函数的默认参数,C不支持
  • 函数指针
    1
    2
    C++提供了面向对象的机制,函数指针可以与类的函数进行绑定,形成成员函数指针,用于实现面向对象的特性,C只能
    指向普通函数。
  • 异常处理
    1
    C++提供了异常处理的机制,可以通过try-catch块捕获和处理异常。C中没有内置的异常处理机制。
  • 命名空间
    1
    C++提供了命名空间的机制防止同名函数之间的错误,C中未提供。