摘要:
# 18.a和&a有什么区别? 假设数组int a[10]; int (*p)[10] = &a;其中: - a是数组名,是数组首元素地址,+1表示地址值加上一个int类型的大小,如果a的值是0x00000001,加1操作后变为0x00000005。*(a + 1) = a[1]。 - &a是数组的 阅读全文
posted @ 2023-07-03 21:17
CodeMagicianT
阅读(82)
评论(0)
推荐(0)
摘要:
# 14.宏定义和typedef区别? - 宏主要用于定义常量及书写复杂的内容;typedef主要用于定义类型别名。 - 宏替换发生在编译阶段之前,属于文本插入替换;typedef是编译的一部分。 - 宏不检查类型;typedef会检查数据类型。 - 宏不是语句,不在在最后加分号;typedef是语 阅读全文
posted @ 2023-07-03 21:16
CodeMagicianT
阅读(302)
评论(0)
推荐(0)
摘要:
# 15.变量声明和定义区别? - 声明仅仅是把变量的声明的位置及类型提供给编译器,并不分配内存空间;定义要在定义的地方为其分配存储空间。 - 相同变量可以在多处声明(外部变量extern),但只能在一处定义。 阅读全文
posted @ 2023-07-03 21:16
CodeMagicianT
阅读(39)
评论(0)
推荐(0)
摘要:
# 16.strlen和sizeof区别? - sizeof是运算符,并不是函数,结果在编译时得到而非运行中获得;strlen是字符处理的库函数。 - sizeof参数可以是任何数据的类型或者数据(sizeof参数不退化);strlen的参数只能是字符指针且结尾是'\0'的字符串。 - 因为size 阅读全文
posted @ 2023-07-03 21:16
CodeMagicianT
阅读(31)
评论(0)
推荐(0)
摘要:
# 11.既然有了malloc-free,C++中为什么还需要new-delete呢?直接用malloc-free不好吗? - malloc/free和new/delete都是用来申请内存和回收内存的。 - 在对非基本数据类型的对象使用的时候,对象创建的时候还需要执行构造函数,销毁的时候要执行析构函 阅读全文
posted @ 2023-07-03 21:15
CodeMagicianT
阅读(56)
评论(0)
推荐(0)
摘要:
# 12.被free回收的内存是立即返还给操作系统吗? 不是的,被free回收的内存会首先被ptmalloc使用双链表保存起来,当用户下一次申请内存的时候,会尝试从这些内存中寻找合适的返回。这样就避免了频繁的系统调用,占用过多的系统资源。同时ptmalloc也会尝试对小块内存进行合并,避免过多的内存 阅读全文
posted @ 2023-07-03 21:15
CodeMagicianT
阅读(62)
评论(0)
推荐(0)
摘要:
# 13.宏定义和函数有何区别? - 宏在预处理阶段完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调用,执行起来更快;函数调用在运行时需要跳转到具体调用函数。 - 宏定义属于在结构中插入代码,没有返回值;函数调用具有返回值。 - 宏定义参数没有类型,不进行类型检查;函数参 阅读全文
posted @ 2023-07-03 21:15
CodeMagicianT
阅读(81)
评论(0)
推荐(0)
摘要:
# 9.new和delete是如何实现的? - new的实现过程是:首先调用名为**operator new**的标准库函数,分配足够大的原始为类型化的内存,以保存指定类型的一个对象;接下来运行该类型的一个构造函数,用指定初始化构造对象;最后返回指向新分配并构造后的的对象的指针 - delete的实 阅读全文
posted @ 2023-07-03 21:14
CodeMagicianT
阅读(77)
评论(0)
推荐(0)
摘要:
# 10.malloc和new的区别? - malloc和free是标准库函数,支持覆盖;new和delete是运算符,支持重载。 - malloc仅仅分配内存空间,free仅仅回收空间,不具备调用构造函数和析构函数功能,用malloc分配空间存储类的对象存在风险;new和delete除了分配回收功 阅读全文
posted @ 2023-07-03 21:14
CodeMagicianT
阅读(37)
评论(0)
推荐(0)
摘要:
# 7.区别以下指针类型? ```C++ int *p[10] int (*p)[10] int *p(int) int (*p)(int) ``` - int *p[10]表示指针数组,强调数组概念,是一个数组变量,数组大小为10,数组内每个元素都是指向int类型的指针变量。 - int (*p) 阅读全文
posted @ 2023-07-03 21:13
CodeMagicianT
阅读(46)
评论(0)
推荐(0)

浙公网安备 33010602011771号