会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
超人不会灰啊
导航
博客园
首页
新随笔
联系
订阅
管理
公告
2021年6月20日
13、哪几种情况必须用到初始化成员列表?
摘要: 一,需要初始化的数据成员是对象的情况;二,需要初始化const修饰的类成员;三,需要初始化引用成员数据;
阅读全文
posted @ 2021-06-20 16:48 超人不会灰啊
阅读(274)
评论(0)
推荐(0)
18、野指针和悬空指针
摘要: 都是是指向无效内存区域(这里的无效指的是"不安全不可控")的指针,访问行为将会导致未定义行为。 1.野指针,指的是没有被初始化过的指针 因此,为了防止出错,对于指针初始化时都是赋值为 nullptr ,这样在使用时编译器就会直接报 错,产生非法内存访问。 2.悬空指针,指针最初指向的内存已经被释放了
阅读全文
posted @ 2021-06-20 14:39 超人不会灰啊
阅读(380)
评论(0)
推荐(0)
17、数组名和指针(这里为指向数组首元素的指针)区别?
摘要: 1.二者均可通过增减偏移量来访问数组中的元素。就是 “[ ]”。 2.数组名不是真正意义上的指针,可以理解为常指针,所以数组名没有自增、自减等操作。就是 “++”“--”。 3.当数组名当做形参传递给调用函数后,就失去了原有特性,退化成一般指针,多了自增、自减操作,但sizeof运算符不能再得到原数
阅读全文
posted @ 2021-06-20 14:34 超人不会灰啊
阅读(250)
评论(0)
推荐(0)
16、a和&a有什么区别?
摘要: int main() { int a[10] = {1,2,3,4,5}; int (*p)[10] = &a; int* q = a; cout << *(a + 1) << endl; // 输出2 cout << (*p)[1]<< endl; // 输出2 cout << q[1]; //
阅读全文
posted @ 2021-06-20 14:20 超人不会灰啊
阅读(753)
评论(0)
推荐(0)
15、常量指针和指针常量区别?
摘要: 1.常量指针是一个不能给改变指向的指针。指针是个常量,不能中途改变指向,如int *const p。 2.指针常量是一个指针,读成常量的指针,指向一个只读变量。如int const *p或const int *p。
阅读全文
posted @ 2021-06-20 10:53 超人不会灰啊
阅读(517)
评论(0)
推荐(0)
14、strlen和sizeof区别?
摘要: 1.sizeof是运算符,并不是函数,结果在编译时得到而非运行中获得;strlen是字符处理的库函数。 2.sizeof参数可以是任何数据的类型或者数据(sizeof参数不退化);strlen的参数只能是字符指针 且结尾是'\0'的字符串。 3.因为sizeof值在编译时确定,所以不能用来得到动态分
阅读全文
posted @ 2021-06-20 01:31 超人不会灰啊
阅读(94)
评论(0)
推荐(0)
12、变量声明和定义区别?
摘要: 1.声明仅仅是把变量的声明的位置及类型提供给编译器,并不分配内存空间;定义要在定义的地方为 其分配存储空间。 2.相同变量可以在多处声明(外部变量extern),但只能在一处定义。
阅读全文
posted @ 2021-06-20 01:10 超人不会灰啊
阅读(197)
评论(0)
推荐(0)
10、宏定义和函数和typedef有何区别?
摘要: 1.宏定义在编译前完成替换,相当于直接插入代码,替换之后的代码参与编译,运行时不存在函数调用,运行就更快。函数调用就需要跳转到具体的函数,速度就更慢。 2.宏定义直接插入代码,没有返回值。函数有返回值。 3.宏定义没有参数类型检测,函数有参数类型检测。 4.宏定义后不加分号。 1.宏主要用于定义常量
阅读全文
posted @ 2021-06-20 00:28 超人不会灰啊
阅读(255)
评论(0)
推荐(0)