回到起始位置,其后会覆盖其前面的东西。
空格:这四个是不可见的字符。
多个相同名称的变量,访问的是上层最近的变量。
全局变量初始值为0;局部变量初始值为随机值。
两个函数名相同并不影响正常使用。
函数参数的默认值:
等价于上图。
第14行不知道调用哪一个plus,所以会报错。
Plus中的2不确定对应b还是c,所以会报错。
那么我们应该把有默认值的变量放到没有默认值的变量后面。
第11行的a和第5行的a不是一个a;
所以四个a输出的值分别为:1 1 2 1。
加一个“&”使得第5行和第11行的a同一个a。
所以输出的四个a就变为:1 1 2 2。
所有在局部变量中开的数组,都会放入栈空间中。
Char的范围:-128到127;
0-127是ASCII码;
-128到0是其他字符。
Cmath库中的
Pow(5,3)的结果应该为125.0(实数)。
类型转换:从较低级类型转化为较高级类型。
double;long long;int;char;bool;:从高到低的等级类型。
强制转换:
比如 用“1ll*”强制转换成long long 形式中。
结构体 构造函数。
函数名必须和结构体名相同。
要想写有参数的构造函数必须先写无参数的构造函数。
调用函数的时候,函数参数的类型不能是数组。而结构体可以作为函数的参数。
数组在结构体里面被函数调用。&会使得速度更快。
重载运算符:
使得:jgt c=a+b变成正确的。
Printf(“8.lf”):保留小数点前8位。
long long int:scanf和printf中的占位符如上图。
如果是WIN32位的系统,用“LL”代替“%I64d”;
如果不是,用“LL”代替“%lld”。
8d前有空格,意思是:如果输出前不满8位,用空格补齐。
Cout换行用“
”比endl快很多。
Scanf输入,cout<<”
”输出快。嗯嗯。
读的更快,‘0;’后面的‘.’去掉。
fread读得比这个还快。。。。
位运算符:& | ^ << >>
&:只有当两边都是1的时候,得到的结果才是1.否则为0.
如9=1001,12=1100.
9&12=1000=8.
|:易知。9&12=1101=13。
^(异或):如果左边的数和右边的数不同的话,则是1.否则为0。
如:9^12=1001^1100=0101.
<<(左移):0110左移后变成1100. 1<<j=2^j
左移运算符:在没有溢出int的情况下,左移y位,相当于x×2^y。
>>:右移 同理:右移y位,相当于x|2^y。
运算符中最快的是 !.
其次是&& 和||。
再次> < >= <= == != & ! ^ << >>
然后 + -.
继续 *
最后 ÷和%。
例子.。。。