取模
先将两个整数看作是正数,再作除法运算:
1、能整除时,其值为 0
2、不能整除时,其值=除数×(整商+1)-被除数
初始化
1、可用{ }列表初始化,但若存在丢失信息情况,会报错(P40)
2、非显式初始化:在函数外(且类型可非显式初始化):初始为0;在函数体内:不能非显式初始化
3、初始化和定义:定义开辟内存空间,但并不一定有初始值,未初始化的,里面存有不确定值
4、const变量需要先初始化
int main()
{
int input_local;
cout << &input_local; //能输出地址
cout << input_local; //会报错,因为没有初始化
}
类型判断、指针和const
1、类型判断:从离变量名最近的向左判断:
//引用指针变量:
int *&variable = ptr;
&:是个引用变量;
*:引用的是个指针变量;
int:引用的是个指向int的指针的变量;
2、指针和const:
(1)该指针指向的变量的内容不能更改,即只读;但能指向非常量的变量地址
//指向了(double类型的常量)的指针
const double *ptr = anotherPtr;
*:是个指针;
const double:是个指向const double的指针
(2)该指针指向的变量的地址不能更改,即指针本身内容不能变
//指向了double类型的(常量指针)
double *const ptr = anotherPtr;
const:是个常量
*:是个常量指针
double:是个指向double的常量指针
(3)const不能被变量引用 || 被指向变量的指针指向;
(4)变量可以赋值给常量 || 被指向常量的指针指向
**总结:
const int *const ptr;
//底层 顶层
无论是引用还是指针,只要满足:
底层类型相同 || 底层是变量赋值给常量;
不用管顶层;
即可赋值操作