C++相关

1数组相关
1、数组的第一维长度可以省略,第二维长度不能省。而且只有在初始化数据的数组才可以省略,如果是单独的声明则无法。

2、对于二维数组,例如 a[3][4] *(a+5) 中(a+5)相当于a[5],所以已经越界了,也就是说不能用a+x,取访问第0行之后的数据。而a作为指针,+1则加的是长度为第二维的长度

3、&a表示的是数组的首地址,a+1,表示的是数组首元素的地址,也就是a和&a不一样

2、static
静态变量和全局变量的相同点在于都保留在静态存储区,声明期与程序声明期相同,而不同点在于全局变量具有全局作用域,静态变量局具有文件作用域。
局部变量改为静态变量后,是改变了他的存储方式,改变了他的生存期,只能被初始化一次,作用域还是在函数体内。
全局变量改为静态变量后,改变了他的作用域,限制了他的适用范围,只能在本文件内使用。
局部变量也不能被赋值为同名的全局变量;

int (*p())[10] 是什么意思

编译:
两段代码共存于一个文件内,编译时有选择的编译其中一部分:

在源码中使用条件编译语句,然后在程序文件中定义宏的形式来选择需要的编译代码
在源码中使用条件编译语句,然后在编译命令的命令中加入宏定义命令来实现选择编译。

友元函数:
友元函数不是类的成员函数,所以友元函数的实现与普通通过函数一样,在实现时不用指示::属于哪个类,只有成员函数才使用::作用域符号
成员函数不能访问类的成员,只能访问对象成员
类与类之间的友元关系不能被继承

父类,子类,成员类的构造执行顺序

①静态数据成员的构造函数
②非静态的数据成员的构造函数
③父类的构造函数
④自己的构造函数

析构执行顺序相反,静态变量只有程序结束才析构

成员变量的初始化顺序也基本相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值