cin、cout消耗的时间比scanf、printf多得多
不要同时在一个程序中使用cout和printf,有时候会出问题
scanf("格式控制",变量地址);
scanf("%d",&n);
printf("格式控制",变量名称);
printf("%d",n);
- &:取地址运算符,& 是一元运算符,返回操作数的内存地址。
- *:间接寻址运算符 ,它是 & 运算符的补充。* 是一元运算符,返回操作数所指定地址的变量的值。
指针是一个包含了另一个变量地址的变量,变量可以是任意的数据类型,包括对象、结构或者指针。
常见数据类型的scanf格式符
数据类型 | 格式符 |
---|---|
int | %d |
long long | %lld |
float | %f |
double | %lf |
char | %c |
字符串(char数组) | %s |
常见数据类型的printf格式符
数据类型 | 格式符 |
---|---|
int | %d |
long long | %lld |
float | %f |
double(与scanf中不同) | %f |
char | %c |
字符串(char数组) | %s |
★:除了c%外,scanf对其他格式符的输入以空白符为结束判断标志,(包括s%),c%可以读入空格和换行
i++先使用i,再将i加1; ++i先将i加1,再使用i。
A?B:C; 如果A为真,执行并返回B的结果;如果A为假,执行并返回C的结果
位移运算符
左移 | a<<x | 整数a 按 二进制位 左移 x位 |
右移 | a>>x | 整数a 按 二进制位 右移 x位 |
位与 | a&b | 整数a、b按二进制位 对齐,按位进行与运算 |
位或 | a|b | 整数a、b按二进制位 对齐,按位进行或运算 |
位异或 | a^b | 整数a、b按二进制位 对齐,按位进行异或运算 |
位取反 | ~a | 整数a的二进制每位进行取反运算 |
复合赋值运算符可以加快编译速度,提高代码可读性(如-=,+=,/=等)