牛客 C++刷题day33

1.C语言其实是有auto的,并不是C++才有的。这点要记住

2.未定义行为

简单地说,未定义行为是指C语言标准未做规定的行为。编译器可能不会报错,但是这些行为编译器会自行处理,所以不同的编译器会出现不同的结果,什么都有可能发生,这是一个极大的隐患,所以我们应该尽量避免这种情况的发生。

这样的例子有很多:

同一个表达式中有多种运算符,

同一语句中各参数的求值顺序,

通过指针修改const常量的值。ETC。。

3.C++中的常量

符号常量:符号常量可不是字符常量,可以用一个标识符来表示一个常量,这个标识符称之为符号常量。其特点是编译后写在代码区,不可寻址,不可更改,属于指令的一部分。#define和const是定义符号常量的两种方式。
逻辑型常量:true  和  false常量分为六种:整型常量、实型常量、字符型常量、字符串常量、符号常量、逻辑型常量
4.无符号和有符号整数相加
有符号数和无符号数进行比较运算时(==,<,>,<=,>=),有符号数隐式转换成了无符号数(即底层的补码不变,但是此数从有符号数变成了无符号数),比如上面 (a+b)>0这个比较运算,a+b=-2。此数进行比较运算时,被当成了无符号数,它远远大于0
5.联合体的sizeof
union(共用体)的各个成员是以同一个地址开始存放的,每一个时刻只可以存储一个成员,这样就要求它在分配内存单元时候要满足两点: 
1.一般而言,共用体类型实际占用存储空间为其最长的成员所占的存储空间; 
2.若是该最长的存储空间对其他成员的元类型(如果是数组,取其类型的数据长度,例int a[5]为4)不满足整除关系,该最大空间自动延伸至可以整除所有元数据大小为止。

猜你喜欢

转载自www.cnblogs.com/Tonarinototoro/p/11620338.html