- sizeof是用来计算变量占多大内存的,单位是字节(byte);sizeof 后面跟类型时,必须加上括号,例如
sizeof(double)
;后面跟变量可以不用加括号,例如:sizeof d
- %d是以十进制形式输出有符号整数(正数不输出符号),%o是以八进制形式输出无符号整数(不输出前缀0),%x是以十六进制形式输出无符号整数(不输出前缀0x,x、A ~ F是小写),%X是以十六进制形式输出无符号整数(不输出前缀0x,x、A ~ F是大写),用修饰符“#”控制前导显示;# 对c,s,d,u类无影响;对o类, 在输出时加前缀0。对x类,在输出时加前缀0x;例如:
printf("%#o %#X", a, a);
- EOF读取文件结束符,其值为 -1;ctrl + d 可以可以终止读取;getchar()是获取输入的字符,putchar()是打印获取的字符,注意putchar不会自动换行;我们想要写一直读取的东西时,可以这么写:
while(scanf("%c", &c) != EOF)
或者while((c = getchar()) != EOF)
- printf 的返回值是里面内容的长度;例如
printf("\n%d", printf("Hello world!"));
输出的先是Hello world!,然后一个换行,然后再输出的就是12,如果在 printf 里面加个 \n 输出就变成13了; - %md可以控制读取输入的长度;例如:我们输入data = 20221228,
scanf("%4d%2d%2d", &y, &m, &d)
,那么y就是2022,m就是12,d就是28;printf("%02d", m)
表示输出m共有两位,如果位数不够的补前导0; - set(int n) 函数是c++中 在输出操作中设置字段宽度设置,n表示字段宽度,只对紧接着的输出有效,紧接着的输出结束后又变回默认的域宽;头文件是
#include <iomanip>
; 当后面紧跟这的输出字段长度小于n时,在字段前面用空格补齐,也可以用setfill() 函数;当输出字段长度大于n时,全部整体输出;cout << setw(4) << 2022 << setw(4) << setfill('0') << 12 << setw(4) << setfill('0') << 28 << endl;
看输出: pow(a, b)
函数是计算 a 的 b 次方;注意: pow 函数的参数类型是double,返回值也是double,当我们不强制类型转换时,有可能因为精度缺失而发生错误,头文件是#include <math.h>
;- 实现交换两个数可以通过位运算(不使用临时变量):
a = a ^ b; b = a ^ b; a = a ^ b;