按位或得到的结果可以是任何数,而逻辑或只能得到0或1
最小公倍数,先找到两个数中最小的数;最小公倍数就是两个中最小的相同倍数
将常量字符串赋值给指针,即首元素地址给了指针。常量不能被修改
二维数组传参时,是传二维数组的首元素地址(整个一维数组)
int *p只能存放一维数组首元素地址(可通过指针访问整个一维数组)
int (*p)[5]指向二维数组首元素地址(可通过指针访问整个二维数组)
指向了二维数组首元素地址,这个首元素中还有5个元素
表示指针指向整个arr元素的地址,其中指向的地址有10个元素
计算二进制中1的个数
法一
用无符号int存储,就默认了最高位也是数据位,即正数。打印时也要用%u
法二
用n=n&(n-1)还可以判断二进制是不是2的幂次方
二进制左移能够计算2的N次方
计算一个数的位数
scanf读取空格时
i
nt sz=sizeof(arr)/sizeof(arr[0]),只能计算已经知道数组元素的元素个数
strlen能计算用户输入后的字符串个数,而sizeof只能算初始化时的字符串个数
因此计算元素个数时,看到已初始化的用 sz;看到字符串用strlen
空格表示
指针的类型决定了解引用和访问的范围
指针强制类型转换时,访问和解引用权限取决于指针类型
一个字符一个字节
算术转换
负数的 / 和 %,看成正数最后加个负号就行
计算某个数的平方时用pow函数
双层for循环
喝汽水问题
将数组中奇数放在后面偶数放在前面
易错
printf的运算和输出方式